博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在gridview的rowcommand事件中取模板列中控件的值
阅读量:5129 次
发布时间:2019-06-13

本文共 1336 字,大约阅读时间需要 4 分钟。

1.在模板列中放一button和textobx,textbox用来存放产品名,将button的commandname设置为deletee 并且在html中将他的CommandArgument属性RowIndex进行绑定:

<asp:TemplateField HeaderText="产品名">

<ItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# bind("productid") %>'></asp:TextBox>
<asp:Button ID="Button3" runat="server" CommandName="deletee" Text="Button" CommandArgument='<%# DataBinder.Eval(Container,"RowIndex") %>' />
</ItemTemplate>
</asp:TemplateField>

后台中输出模板列中textbox中的值(保存的产品的id):

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)

{
if (e.CommandName == "deletee")
{
int i = Convert.ToInt32(e.CommandArgument.ToString());

// int i = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;//(该方法不需要html中的绑定,取id.刚刚看到的,加上来,好方法.......)

TextBox tb = (TextBox)GridView1.Rows[i].FindControl("textbox3");
string str = tb.Text.Trim();
Response.Write(str);

}

}

 

注解:

int rowIndex = ((GridViewRow)((Button)e.CommandSource).NamingContainer).RowIndex;

e.CommandSource傳的是按下去的Button,不過由於傳回的是Object,就得自行轉成Button,但由於我們想知道的是RowIndex,而Button是包含在GridViewRow內,所以透過NamingContainer傳回目前的GridViewRow,但傳回的是Control,所以需在轉成GridViewRow後才能有RowIndex property。

 

原理是:将当前行索引和Button的commandargument绑定,用的时候只要取出当前行的索引即可......

gridview的rowcommand事件和datalist的itemcommand事件相似..........

转载于:https://www.cnblogs.com/verygood1127/archive/2012/05/03/2480333.html

你可能感兴趣的文章
Tizen - "泰泽"新移动操作系统
查看>>
go的net/http用法
查看>>
sql语句判断两个时间段是否有交集
查看>>
秒杀、抢购解决方案
查看>>
利用Mrjob实现Weighted Slope One算法
查看>>
jmeter旅程第二站:jmeter登录接口测试
查看>>
.Net Core 商城微服务项目系列(六):搭建自己的Nuget包服务器
查看>>
HTML
查看>>
java 多线程
查看>>
细说mysql索引
查看>>
【Linux常用指令整理4】搜索文件
查看>>
zdz工具箱v1.5 android版本发布了,集成各种个人生活中常用的工具,方便日常使用管理...
查看>>
MVC AJAX
查看>>
[SCOI2005]繁忙的都市
查看>>
imx51-linux的cpuinfo之分析
查看>>
elementUI -- table相关的问题
查看>>
WINCE6.0+IMX515通过cfimager.exe烧录镜像文件
查看>>
Day08 数据处理
查看>>
Golang命令行库Cobra的使用
查看>>
centos7下部署Django(nginx+uwsgi+python3+django)
查看>>