gridview中GridViewCommandEventArgs的问题

飞起来一脚 2008-07-04 02:25:04
定义了模版列,放入ImageButton按钮,希望按这个按钮的时候,获取到gridview中的信息。
但是用GridViewCommandEventArgs e中e.CommandArgument无法获取到索引,一直为空值。请问怎么回事,如何处理。
代码简写如下
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="username,role,datetime" OnRowCommand="gridview1_command1">
<Columns>
<asp:TemplateField HeaderText="修改">
<ItemTemplate>
<asp:ImageButton ID="ImageButton2" runat="server" BorderWidth="0px" ImageUrl="~/image/button_update.gif" CausesValidation="False" CommandName="command1"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>

protected void gridview1_command1(object sender, GridViewCommandEventArgs e)
{
Response.Write(e.CommandArgument.ToString());//获取不到
}
还有就是还没搞明白commandname的作用什么,跟<asp:GridView是否需要对应起来
...全文
600 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shanquan101 2011-05-19
  • 打赏
  • 举报
回复
希望高手解答
飞起来一脚 2008-07-05
  • 打赏
  • 举报
回复
顶起来继续问
飞起来一脚 2008-07-05
  • 打赏
  • 举报
回复
我给CommandArgument='<%# eval("username")%>'
用e.CommandArgument获得的就是该行的username,有没有办法获得行号呢?
或者使用CommandArgument=_________能构造出个步长1的递增数列呢
amandag 2008-07-04
  • 打赏
  • 举报
回复
1. 你没有给CommandArgument赋值,如何取值?除非是BoundField,CommandArgument里存放的是行索引
2. 应该在GridView的RowCommand事件中处理
GT7466 2008-07-04
  • 打赏
  • 举报
回复
在 <asp:ImageButton CommandArgument="<%你绑定的字段%> />
在单击 GridView 控件的按钮时,将引发 RowCommand 事件。 GridView 控件具有内置功能,用于进行编辑、删除和分页等操作。 还可以添加按钮并使用 RowCommand 事件向控件添加自定义功能。 可以通过下面的方式向 GridView 控件添加自定义功能: 向 GridView 控件添加 ButtonField 字段。 向 GridView 控件的模板添加 Button、LinkButton 或 ImageButton 控件。 可以使用事件参数的 CommandName 属性在事件处理程序方法标识按钮的功能。 如果使用的是 ButtonField 或 TemplateField 对象,则还可以使用 CommandArgument 属性来标识当前行。 使用的是 ButtonField 对象时,CommandArgument 属性自动设置为行索引。 使用的是 TemplateField 对象时,控件不会自动设置 CommandArgument 属性。 在这种情况下,如果必须在事件处理程序确定行索引,则可以使用数据绑定表达式将该按钮的 CommandArgument 属性设置为行索引。 响应 GridView 控件的按钮事件 将按钮的 CommandName 属性设置为标识其功能的字符串,如“打印”或“复制”。 如果使用的是 TemplateField 对象并且必须在事件处理程序方法访问行索引,则将按钮的 CommandArgument 属性设置为标识当前行的表达式。 下面的示例演示如何将 TemplateField 列某个按钮的 CommandArgument 属性设置为当前行索引。 在该示例,该列包含一个显示购物车的 Button 控件。 VBC#C++F#JScript 复制不支持该语言或没有可用的代码示例。 VBC#C++F#JScript 复制 CommandName="AddToCart" CommandArgument="" Text="Add to Cart" /> 为 GridView 控件的 RowCommand 事件创建一个方法。 在该方法,执行下列操作: 检查事件参数对象的 CommandName 属性来查看传入什么字符串。 如果需要,使用 CommandArgument 属性检索包含该按钮的行的索引。 为用户单击的按钮执行相应的逻辑。 下面的示例演示响应 GridView 控件的按钮单击的方法。 在该示例,TemplateField 列的按钮发送命令“AddToCart”。 RowCommand 事件处理程序确定被单击的按钮。 如果被单击的是购物车按钮,则代码执行相应的逻辑。

111,112

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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