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

接上个问题
这是gridview里面的绑定的列 期DatakeyNames="Number" 
<ItemTemplate> 
  <%# Eval("Number")%> 
</ItemTemplate> 
<ItemTemplate> 
  <%# Eval("Name")%> 
</ItemTemplate> 
<ItemTemplate> 
  <asp:button id="button1" runat="server" text="修改" Onclick="button1_Click"> 
</ItemTemplate> 
效果显示如下:
编号 姓名 修改
no1.01 aaa 修改(按钮)
no1.02 bbb 修改(按钮)
no1.03 ccc 修改(按钮)
no2.01 ddd 修改(按钮)
no2.02 eee 修改(按钮)
我点击修改按钮,怎么得到这行是属于girdview里面的第几行?

------解决方案--------------------
你可以用gridview的RowCommand方法来处理你的逻辑,
在button上直接
 <asp:Button ID="Button1" runat="server" Text="修改" CommandName="modifyRow" CommandArgument='<%# Eval("ID") %>'>
 <asp:Button ID="Button2" runat="server" Text="更新" CommandName="updateRow" CommandArgument='<%# Eval("ID") %>'>

绑定commandName,然后绑定关键字
后台
 protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "modifyRow")
{
object obj=e.CommandArgument;//这里就是前台绑定的参数,转换成相应类型进行操作
比如如果是int类型的
int id=Convert.ToInt32(e.CommandArgument);
.......

if(e.CommandName=="updateRow")
{

......
}
}
------解决方案--------------------
<%# Container.ItemIndex+1 %>
------解决方案--------------------
探讨
<%# Container.ItemIndex+1 %>

------解决方案--------------------
C# code

 protected void Button1_Click(object sender, EventArgs e)
    {
        Button btn = (Button)sender;
        DataRow row = btn.Parent.Parent as Button;//当前行
    }