当前位置: 代码迷 >> ASP.NET >> gridview 主键值有关问题
  详细解决方案

gridview 主键值有关问题

热度:326   发布时间:2013-02-25 00:00:00.0
gridview 主键值问题
这是gridview里面的绑定的列 期DatakeyNames="Number"
<ItemTemplate>
  <%# Eval("Number")%>
</ItemTemplate>
<ItemTemplate>
  <%# Eval("Name")%>
</ItemTemplate>
<ItemTemplate>
  <asp:button id="button1" runat="server" text="修改" Onclick="button1_Click">
</ItemTemplate>
请问我现在点击按钮要怎么得到当前按钮行的主键值呢?
目前我得到的是girdview里面所有绑定列的主键值!我要怎么得到当前按钮点击行的主键值?

------解决方案--------------------------------------------------------
C# code
<asp:button id="button1"  CommandArgument='<%#Eval("绑定主键")' runat="server" text="修改" Onclick="button1_Click"> 在button1_Click中string id = ((Button)sender).CommandArgument;获得主键。就可以判断当前行了!
------解决方案--------------------------------------------------------
你需要给 ImageButton2 的 CommandName 和 CommandArgument 赋值。 
然后响应 GridView 的 onrowcommand。 

详细一点: 
CommandName 自定义一个命令名称; 
CommandArgument 命令的参数值,你可能需要这样写:CommandArgument=' <%# Eval("Number") %>',以表示不同的行; 
onrowcommand 中有一个参数的类型为 GridViewCommandEventArgs,它可以获取你所点的按钮的 CommandName、CommandArgument 值。
------解决方案--------------------------------------------------------

------解决方案--------------------------------------------------------
gridview.datakeys[e.itemindex]大概这样
------解决方案--------------------------------------------------------
方法一:<asp:Button ID="LkDel" runat="server" OnClick="LkDel_Click"
 CommandArgument='<%#Eval("commentid") %>' /></span>

C# code
 protected void LkDel_Click(object seder, EventArgs e)    {   //定义评论ID        string commentid = ((Button )seder).CommandArgument.ToString();        if (commentid != null)        {            sqlt.Operate("delete dbo.space_MyComments where commentid=" + commentid + " "); sqlt.ConClose();        } }