GridView控件的按钮事件

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

如何实现?
...全文
209 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
  • 打赏
  • 举报
回复
做事件判断,主要还是看你按钮的具体业务。

62,253

社区成员

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

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

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

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