C# GridView页面索引交换
我有一个gridview,当视图中有10个以上的项目时,会添加一个新页面,非常简单……无论如何,当用户在第二个页面上并在该记录上单击“删除”时,该行第一个页面中的项目会被删除。示例:第1页有10项,第一行是零件号1234,第二页第一行是零件号7890。如果用户单击7890记录的删除,则1234记录将从第一行删除,或者从他们选择要删除的对应行中删除 代码如下:C# GridView页面索引交换,c#,asp.net,gridview,page-index-changed,C#,Asp.net,Gridview,Page Index Changed,我有一个gridview,当视图中有10个以上的项目时,会添加一个新页面,非常简单……无论如何,当用户在第二个页面上并在该记录上单击“删除”时,该行第一个页面中的项目会被删除。示例:第1页有10项,第一行是零件号1234,第二页第一行是零件号7890。如果用户单击7890记录的删除,则1234记录将从第一行删除,或者从他们选择要删除的对应行中删除 代码如下: protected void griditems_PageIndexChanging(object sender, GridViewPag
protected void griditems_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
griditems.PageIndex = e.NewPageIndex;
BindData();
}
编辑对不起,各位……下面是删除命令:
protected void griditems_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
try
{
DataTable dt = (DataTable)Session["table"];
if (dt.Rows.Count > 0)
{
dt.Rows.RemoveAt(e.RowIndex);
griditems.DataSource = dt;
BindData();
}
}
catch
{
//error message
}
}
在aspx中:
<asp:GridView ID="griditems" runat="server" onrowdeleting="griditems_RowDeleting" onrowediting="griditems_RowEditing" onrowupdating="griditems_RowUpdating"
AllowPaging="True" PageSize="10" onpageindexchanging="griditems_PageIndexChanging" Onrowcancelingedit="griditems_RowCancelingEdit"
Caption="Order Details" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" onrowdatabound="griditems_RowDataBound" >
<EditRowStyle BackColor="#FF9900" BorderStyle="Double"/>
<RowStyle HorizontalAlign="Center"/>
</asp:GridView>
您也应该显示您的
griditems\u行删除
实现,但即使没有它,我也可以假设您只需要获取行的索引,并将页码乘以每页中的记录量添加到其中
Console.WriteLine(e.RowIndex); // 7
Console.WriteLine(griditems.PageIndex); // 3
// Assuming you have 10 records per page, you can safely say...
var realIndexOfRecord = e.RowIndex + griditems.PageIndex * 10; // 37
编辑后:
protected void griditems_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
try
{
DataTable dt = (DataTable)Session["table"];
if (dt.Rows.Count > 0)
{
// Replace `10` with the appropriate variable
dt.Rows.RemoveAt(e.RowIndex + griditems.PageIndex * 10);
griditems.DataSource = dt;
BindData();
}
}
catch
{
//error message
}
}
我想你应该发布“griditems\u RowDelete”命令而不是“griditems\u PageIndexchange”。谢谢你……我知道我忽略了一些愚蠢的事情。