启用分页时删除 Gridview 行
Delete Gridview row when paging is enabled
我有一个启用了分页和删除按钮的 Gridview。使用下面的代码,删除按下删除按钮的行上方的行。我也试过 "dt.Rows.Remove(dt.Rows[rowIndex-1]"。
行值仅在 DataTable 中(不在数据库中)。
卡得很厉害
需要帮助或代码来在 gridview 中启用分页时删除行。
protected void GVRequest_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
if (ViewState["CurrentTable"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
int rowIndex = Convert.ToInt32(e.RowIndex);
if (dt.Rows.Count > 1)
{
dt.Rows.Remove(dt.Rows[rowIndex]);
drCurrentRow = dt.NewRow();
ViewState["CurrentTable"] = dt;
GVRequest.DataSource = dt;
GVRequest.DataBind();
for (int i = 0; i < GVRequest.Rows.Count - 1; i++)
{
GVRequest.Rows[i].Cells[0].Text = Convert.ToString(i + 1);
}
//SetPreviousData();
dt.AcceptChanges();
ViewState["CurrentTable"] = dt;
DataView view = new DataView(dt);
DataTable dt1 = view.ToTable( /*distinct*/ true, "CartonID", "FileID", "FileMasterID", "DeptFileID", "RequestID");
GVRequest.DataSource = dt1;
DataBind();
}
}
来自 OP 评论
when I press the delete button it is deleting a selected row from the
first page only
当你要逐页删除记录时,你必须在前面的页面上添加记录才能获得数据表中记录的索引,因为数据表不知道你在哪一页。
使用您拥有的代码,如果您删除第二页索引 4 处的记录,您实际上会删除第一页索引 4 处的记录。
您需要计算 DataTable 的索引,保持表达式中的 PageNo 和 PageSize,如下所示。
int rowIndex = e.RowIndex + GVRequest.PageIndex * GVRequest.PageSize ;
注意:我假设第一页的 PageNo 为零
我有一个启用了分页和删除按钮的 Gridview。使用下面的代码,删除按下删除按钮的行上方的行。我也试过 "dt.Rows.Remove(dt.Rows[rowIndex-1]"。
行值仅在 DataTable 中(不在数据库中)。
卡得很厉害
需要帮助或代码来在 gridview 中启用分页时删除行。
protected void GVRequest_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
if (ViewState["CurrentTable"] != null)
{
DataTable dt = (DataTable)ViewState["CurrentTable"];
DataRow drCurrentRow = null;
int rowIndex = Convert.ToInt32(e.RowIndex);
if (dt.Rows.Count > 1)
{
dt.Rows.Remove(dt.Rows[rowIndex]);
drCurrentRow = dt.NewRow();
ViewState["CurrentTable"] = dt;
GVRequest.DataSource = dt;
GVRequest.DataBind();
for (int i = 0; i < GVRequest.Rows.Count - 1; i++)
{
GVRequest.Rows[i].Cells[0].Text = Convert.ToString(i + 1);
}
//SetPreviousData();
dt.AcceptChanges();
ViewState["CurrentTable"] = dt;
DataView view = new DataView(dt);
DataTable dt1 = view.ToTable( /*distinct*/ true, "CartonID", "FileID", "FileMasterID", "DeptFileID", "RequestID");
GVRequest.DataSource = dt1;
DataBind();
}
}
来自 OP 评论
when I press the delete button it is deleting a selected row from the first page only
当你要逐页删除记录时,你必须在前面的页面上添加记录才能获得数据表中记录的索引,因为数据表不知道你在哪一页。
使用您拥有的代码,如果您删除第二页索引 4 处的记录,您实际上会删除第一页索引 4 处的记录。
您需要计算 DataTable 的索引,保持表达式中的 PageNo 和 PageSize,如下所示。
int rowIndex = e.RowIndex + GVRequest.PageIndex * GVRequest.PageSize ;
注意:我假设第一页的 PageNo 为零