2012-08-29 90 views
0

我有一個gridview,當超過10個項目在視圖中,添加一個新的頁面,非常簡單...無論如何,當用戶在第二個頁面上,並點擊該記錄上的刪除,該項目從該行的第一頁被刪除。例如:第1頁有10個項目,第1行是部件號1234,第2頁第1行的部件編號是7890.如果用戶單擊刪除7890記錄,則從第1行刪除1234記錄,或者他們選擇刪除哪個對應的行。GridView PageIndexChanging

下面的代碼:

protected void griditems_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     griditems.PageIndex = e.NewPageIndex; 
     BindData(); 
    } 

編輯對不起大家......這裏是delete命令:

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> 
+0

我gusess你應該張貼你 「griditems_RowDeleting」 命令,而不是 「griditems_PageIndexChanging」。 –

回答

1

你應該表現出你的griditems_RowDeleting實現,但即使沒有它我ca n假設您只需要獲取行的索引並將頁碼添加到每個頁面中的記錄數量。

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 
    } 
} 
+0

謝謝......我知道這是我忽略的一些愚蠢。 –

相關問題