日期:2014-05-18  浏览次数:20338 次

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