2014-01-28 27 views
0

每當我點擊編輯按鈕它從窗體中獲取錯誤的索引。我如何將編輯與它所在的行相關聯?如何綁定gridview編輯到一個索引 - (GridViewEditEventArgs返回錯誤的參數)

這裏是電網的相關部分...

<asp:GridView 

     ID="gvChart" 
     runat="server" 
     AutoGenerateColumns="False" 
     AllowPaging="True" 
     PageSize="100" 
     EnableViewState="False" 
     DataKeyNames="ID" 
     onrowediting="gvChart_RowEditing" 
     OnPageIndexChanging="gvChart_PageIndexChanging" 
     OnRowDataBound="gv_RowDataBound"> 

     <Columns> 

      <asp:TemplateField> 
       <ItemTemplate> 
         <asp:Button ID="EditButton1" runat="server" CommandName="Edit" Text="Edit"/> 
      </ItemTemplate> 
      </asp:TemplateField> 

     </Columns> 

    </asp:GridView> 

背後的代碼是在這裏。 'e'得到不正確的'NewEditIndex'值進入方法。

protected void gvChart_RowEditing(object sender, GridViewEditEventArgs e) 
{ 
    string ID = gvChart.DataKeys[e.NewEditIndex].Value.ToString(); 

} 
+0

我要補充一點,如果我從我的查詢中刪除「ORDER BY ID」,那麼編輯按鈕聯繫到正確的行。但我需要按ID排序。 – user1327418

回答

0

試試這個:

string ID = gvChart.DataKeys[e.RowIndex].Value; 
+0

當我使用它時,e沒有RowIndex屬性? – user1327418

+0

參考這篇文章:http://www.webcodeexpert.com/2013/03/how-to-read-datakeynames-on-rowediting.html#.Uugd17RRWW8 –

+0

該文章也使用RowIndex。 :)如何獲取GridViewEditEventArgs對象以獲取此屬性? – user1327418

相關問題