GridView的RowCommand事件中获取该行DataKey值(转)

需求现象:在RowCommand事件中获取该行DataKey值,以便编辑改行相应的数据;

解决方案:
1)模板列中的LinkButton ,需要绑定其CommandArgument='<%# Bind("ID") %>',然后在RowCommand事件中获取
绑定:
   <asp:TemplateField >
     <HeaderTemplate>
      <asp:LinkButton ID="deleteSelect" Text="删除选中" CommandName="DeleteSelect" runat="server"></asp:LinkButton>
       </HeaderTemplate>
        <ItemTemplate>
         <asp:LinkButton ID="delete" Text="删除" CommandName="DeleteRow" CommandArgument='<%# Bind("ID") %>' runat="server" ></asp:LinkButton>
        </ItemTemplate>
   </asp:TemplateField>
获取:
string ID = e.CommandArgument.ToString();

2)非模板列的ButtonField,不需要绑定其CommandArgument,就可以获取
绑定:
      <asp:ButtonField CommandName="showprodorder" HeaderText="查看" Text="删除" >
          <ItemStyle Width="60px" />
      </asp:ButtonField>
获取:
int rowNumber = Convert.ToInt32(e.CommandArgument);
string ID = dg.DataKeys[rowNumber].Value.ToString();

posted @ 2012-04-21 11:45  sidihu  阅读(455)  评论(0编辑  收藏  举报