GridView控件的按钮事件

liux945 2008-09-06 08:19:52
我在GridView上添加一个按钮 想要单击按钮的时候实现对数据库的操作

如何实现?
...全文
197 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
liux945 2008-09-06
  • 打赏
  • 举报
回复
还1个问题 用了<ItemTemplate> 如何获取到 这个文本的值

我用(TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() 获取不到了
liux945 2008-09-06
  • 打赏
  • 举报
回复
搞定了 谢谢大家了
liux945 2008-09-06
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 namhyuk 的回复:]
不是直接写 <ItemTemplate>
而是套在
<asp:TemplateField>
<ItemTemplate>
<asp:Button CommandName="funny" CommandArgument=' <%= Eval("ProductID") %>' runat="server" ID="BtnID" Text="Go" />
</ItemTemplate>
</asp:TemplateField>
[/Quote]


按你说的写了 出异常了 没看明白

回发或回调参数无效。在配置中使用 <pages enableEventValidation="true"/> 或在页面中使用 <%@ Page EnableEventValidation="true" %> 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
namhyuk 2008-09-06
  • 打赏
  • 举报
回复
对了,应该是CommandArgument='<%# Eval("ProductID") %>'

然后
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "funny")
{
int id = Convert.ToInt32(e.CommandArgument);
Response.Write(id.ToString());
}
}
namhyuk 2008-09-06
  • 打赏
  • 举报
回复
不是直接写<ItemTemplate>
而是套在
<asp:TemplateField>
<ItemTemplate>
<asp:Button CommandName="funny" CommandArgument='<%= Eval("ProductID") %>' runat="server" ID="BtnID" Text="Go" />
</ItemTemplate>
</asp:TemplateField>
liux945 2008-09-06
  • 打赏
  • 举报
回复
起不同的名字 但是现在的问题是 我获取不到 我点击按钮所在行的主键的值

用什么属性获取
CloudOfFly 2008-09-06
  • 打赏
  • 举报
回复
是让你给CommandName 起不同的名字
然后判断
CommandName的直是什么 然后才进行具体的操作
liux945 2008-09-06
  • 打赏
  • 举报
回复
<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating" DataKeyNames="id" OnRowCommand="GridView1_RowCommand">
<Columns>
<asp:ButtonField Text="公开" ButtonType="Button" CommandName="gongkai"/>
<asp:ButtonField Text="隐藏" ButtonType="Button" CommandName="yincang" />
</Columns>
</asp:GridView>


GridView里不让写<ItemTemplate> 标签 并且ButtonField标签也没有CommandArgument属性 获取不到所点击按钮行的主键
BernardSun 2008-09-06
  • 打赏
  • 举报
回复
CommandName起不同的名字
if(e.CommandName == "") 判断一下是哪个就行了
jiang_jiajia10 2008-09-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 namhyuk 的回复:]
如果是ItemTemplate内的Button,那就是处理GridView.RowCommand的问题了。

<ItemTemplate>
<asp:Button CommandName="MyCommand" CommandArgument=' <%# Eval("主关键字段") %>'


//GridView1.RowCommand
if(e.CommandName == "MyCommand")
{
int id = Convert.ToInt32(e.CommandArgument);
...
[/Quote]

两个按钮就起另外一个CommandName
liux945 2008-09-06
  • 打赏
  • 举报
回复
要是有2个按钮怎么办?
namhyuk 2008-09-06
  • 打赏
  • 举报
回复
如果是ItemTemplate内的Button,那就是处理GridView.RowCommand的问题了。

<ItemTemplate>
<asp:Button CommandName="MyCommand" CommandArgument='<%# Eval("主关键字段") %>'


//GridView1.RowCommand
if(e.CommandName == "MyCommand")
{
int id = Convert.ToInt32(e.CommandArgument);
...

liux945 2008-09-06
  • 打赏
  • 举报
回复
按钮添加进去了 如何绑定事件?
kingcsx666 2008-09-06
  • 打赏
  • 举报
回复
模板列里面添加按钮
tao3528318 2008-09-06
  • 打赏
  • 举报
回复
做事件判断,主要还是看你按钮的具体业务。
在单击 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 复制 GridView 控件的 RowCommand 事件创建一个方法。 在该方法中,执行下列操作: 检查事件参数对象的 CommandName 属性来查看传入什么字符串。 如果需要,使用 CommandArgument 属性检索包含该按钮的行的索引。 为用户单击的按钮执行相应的逻辑。 下面的示例演示响应 GridView 控件中的按钮单击的方法。 在该示例中,TemplateField 列中的按钮发送命令“AddToCart”。 RowCommand 事件处理程序确定被单击的按钮。 如果被单击的是购物车按钮,则代码执行相应的逻辑。

62,046

社区成员

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

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

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

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