在GridView中获得ID值

kahou_003 2011-02-17 06:24:34
有一个GridView,代码如下
<asp:GridView ID="GridView_WarningList" runat="server" CssClass="warninglist"
AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="ID"
PageSize="18" AllowPaging="true"
onpageindexchanging="GridView_WarningList_PageIndexChanging">
<Columns>

<asp:BoundField DataField="ID" HeaderText="编号"/>
<asp:BoundField DataField="Title" HeaderText="信息标题" />
<asp:BoundField DataField="Time" HeaderText="时间" DataFormatString="{0:yyyy-mm-dd}" />
<asp:TemplateField HeaderText="操作" >
<ItemTemplate>
<asp:Button ID="check_btn" runat="server" Text="查看" CssClass="admin_control"/>
<asp:Button ID="alter_btn"
runat="server" Text="修改" CssClass="admin_control" OnCommand="Alter_Command" CommandArgument="<%#Bind("ID") %>" />


问题一:当点击“修改”按钮时,执行“OnCommand”事件“Alter_Command”,同时在这里设定“CommandArgument”,可是小弟不会设置,这里报错。本来是想“CommandArgument”绑定“ID”,
然后后台代码中:
protected void Alter_Command(object sender,CommandEventArgs e)
{
Int ID= e.CommandArgument;
}

这里的关键问题是不会绑定数据到“CommandArgument”。CommandArgument="<%#Bind("ID") %>",这里的Bind("ID")是后台里的方法吗?应该怎样写?

不是应该用CommandArgument="<%#Eval("ID") %>的吗?
而且,这样写会提示“创建控件时出错”,“服务器标记的格式不正确”。。。






<asp:CheckBox ID="select_box" runat="server" CssClass="admin_control"/></ItemTemplate>
</asp:TemplateField>
</Columns>
<SelectedRowStyle BackColor="#eeeef6" />
<PagerStyle BackColor="#eeeef6" Font-Bold="true" Font-Underline="true" HorizontalAlign="Left" />
<HeaderStyle CssClass="warninglist_header"/>
<FooterStyle CssClass="warninglist_footer"/>
</asp:GridView>

...全文
274 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kahou_003 2011-02-18
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 huangwenquan123 的回复:]

HTML code
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField ItemStyle-Width="300" ItemStyle-HorizontalAlign="Cente……
[/Quote]

3Q...
huangwenquan123 2011-02-17
  • 打赏
  • 举报
回复
也可以设置button的commandname,然后在RowCommand事件中获取
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
onrowcommand="GridView1_RowCommand">
<Columns>
<asp:TemplateField ItemStyle-Width="300" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<%#Eval("Name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" CommandName="Deletes" CommandArgument='<%#Eval("ID") %>' Text='<%#Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

    protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Deletes")
{
Response.Write(e.CommandArgument.ToString());
}
}
huangwenquan123 2011-02-17
  • 打赏
  • 举报
回复
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField ItemStyle-Width="300" ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<%#Eval("Name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="Button2" runat="server" OnCommand="Button1_Command" CommandArgument='<%#Eval("ID") %>' Text='<%#Eval("ID") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

    protected void Button1_Command(object sender, CommandEventArgs e)
{
int id = Convert.ToInt32((sender as Button).CommandArgument);
Response.Write(id);
}
huangwenquan123 2011-02-17
  • 打赏
  • 举报
回复
CommandArgument='<%#Bind("ID") %>' />
kahou_003 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wisdom1 的回复:]
gridview 72绝

你要什么功能都有:http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
[/Quote]

看了啊,但是没找到呢?
wisdom1 2011-02-17
  • 打赏
  • 举报
回复

gridview 72绝

你要什么功能都有:http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
kahou_003 2011-02-17
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wxr0323 的回复:]

用EVAL的时候

CommandArgument="<%#Eval("ID") %>"

就是这样呗
然后后台绑定这个Gridview的datasource 里面含有ID这个字段。。

给你个DEMO 网上有好多 看看里面怎么写的就好了。。

照着做一遍就都会了。。
[/Quote]

这样设置了,为什么提示控件创建错误???
子夜__ 2011-02-17
  • 打赏
  • 举报
回复
用EVAL的时候

CommandArgument="<%#Eval("ID") %>"

就是这样呗
然后后台绑定这个Gridview的datasource 里面含有ID这个字段。。

给你个DEMO 网上有好多 看看里面怎么写的就好了。。

照着做一遍就都会了。。
wuyq11 2011-02-17
  • 打赏
  • 举报
回复
CommandArgument=' <%#DataBinder.Eval(Container.DataItem,"id") %>'
CommandArgument='<%# Bind(" id")%>'

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧