有一个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>
<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>
CommandArgument='<%# Bind(" id")%>'
然后后台绑定这个Gridview的datasource 里面含有ID这个字段。。给你个DEMO 网上有好多 看看里面怎么写的就好了。。照着做一遍就都会了。。
gridview 72绝你要什么功能都有:http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
<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);
}
<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());
}
}