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();

转载于:https://www.cnblogs.com/sidihu/archive/2012/04/21/2461206.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GridView,可以使用CommandName和CommandArgument属性为Button控件添加命令名称和参数,然后在GridViewRowCommand事件获取这些,从而确定是哪一行的Button被点击了,进而获取该行的数据。 例如,假设GridView有一个Button控件,代码如下: ``` <asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"> <Columns> <asp:ButtonField ButtonType="Button" CommandName="MyButton" CommandArgument="<%# Container.DataItemIndex %>" Text="Click" /> <!-- 其他列 --> </Columns> <!-- 数据源等设置 --> </asp:GridView> ``` 这里使用了ButtonField控件作为列,设置了CommandName为"MyButton",CommandArgument为"<%# Container.DataItemIndex %>",表示把当前行的索引传递给了按钮的参数。 接下来在GridViewRowCommand事件获取这些: ``` protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "MyButton") { int index = Convert.ToInt32(e.CommandArgument); GridViewRow row = GridView1.Rows[index]; // 获取该行的数据,例如: string name = row.Cells[0].Text; // 假设第一列是名称列 // 其他操作 } } ``` 在RowCommand事件,首先判断命令名称是否为"MyButton",如果是,则获取CommandArgument的换成整数类型,表示点击了哪一行的Button。然后可以通过GridViewRows属性获取这一行的GridViewRow对象,进而获取该行的数据。这里假设第一列是名称列,可以通过Cells[0].Text来获取该列的文本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值