(菜鸟求助)GridView中添加确认对话框后找不到行的索引?
将GridView中的一个ButtonField列,转换为模板列后添加了一个确认对话框,如下:<asp:TemplateField HeaderText="修改" ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="false" CommandName="mod" ImageUrl="~/pic/ToPast.gif" Text="归档" OnClientClick="return confirm('您确认修改记录吗?');" />
</ItemTemplate>
</asp:TemplateField>
在RowCommand事件中执行更新操作
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "mod")
{
int index = Convert.ToInt32(e.CommandArgument);
string ID = GView11.Rows[i].Cells[0].Text;
//执行数据库操作UPDATE...修改某些字段的值
}
}
运行程序,选定某行单击“归档”按钮,在弹出的对话框里单击“确认”后执行到int index = Convert.ToInt32(e.CommandArgument)处出错:
输入的字符串格式不正确(无法获取index的值)
查看此时e.CommandArgument的值为"",(不知道e是什么了)
没有加模板易做图认按钮前,RowCommand事件运行正常!
请问各位高手该这种情况下 如何取得行号(index)或者行主键值(ID)呢?
--------------------编程问答-------------------- 更正: RowCommand事件
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "mod")
{
int index = Convert.ToInt32(e.CommandArgument);
string ID = GridView1.Rows[i].Cells[0].Text;
//执行数据库操作UPDATE...修改某些字段的值
}
} --------------------编程问答-------------------- 感谢mincunbao(衝動是魔鬼)!!!
根据mincunbao(衝動是魔鬼)的以往的回复解决了:
引用——
“在Gridview中加入一个模板列,编译模板列,在ItemTemplate中加入一个LinkButton,编译LinkButton
的属性,设其ID为btnview,commandArgument的值设为:<%#DataBinder.Eval(Container.DataItem,"要
绑定的数据段,如:UserID")%>' oncommand="btnview_click".这些代码,可以在后台自动生成。
但要注意对前台LinkButton属性的设置。 ”
修改如下:
<asp:TemplateField HeaderText="修改" ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="false" CommandName="mod" ImageUrl="~/pic/ToPast.gif" Text="归档" commandArgument='<%#DataBinder.Eval(Container.DataItem,"ID")%>' OnClientClick="return confirm('您确认修改记录吗?');" />
</ItemTemplate>
</asp:TemplateField>
在RowCommand事件中执行更新操作
protected void GridView_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "mod")
{
string ID = e.CommandArgument.ToString();
//执行数据库操作UPDATE...修改某些字段的值
}
}
补充:.NET技术 , ASP.NET