作者TeemingVoid (TeemingVoid)
看板C_Sharp
标题Re: [问题] GridView按钮按下後无法产生RowCommand
时间Fri Jan 20 00:30:19 2012
※ 引述《epola (Epola)》之铭言:
: 请问各位高手,
: 最近我新学GridView遇到一个问题,
: 当在GridView中加入Button时 (commandname没输入)
: 由设计页面去点选Button时,并不会主动生成
: void xxxGridView_RowCommand(Object sender, GridViewCommandEventArgs e){略}
: 因为我需要取得目前取得的button属於哪一个row
: 却都会产生
: void xxxGridView_SelectedIndexChanged(Object sender, EventArgs e)
不论是在 GridView 里头的哪一个按钮,也不论是在 GridView 的哪一个部分,只要
是在 GridView 上头点两下,产生的预设事件程序就是 SelectedIndexChanged 事件。
: 而若是自行加上
: <asp:GirdView ID="GirdView1" runat="server" OnRowCommand="xxxGridView_RowCommand">
: </asp:GirdView>
: 还是会出现错误讯息。
: 不知道是否有哪个步骤出现错误 ?
建议您这麽做试试看:
1. 先点一下设计画面的 GridView
2. 再点一下右下角的「属性」视窗的「事件」按钮(图面像一道闪电)。
(按下功能键 F4 可显示「属性」视窗)
3. 在事件表中,点两下 RowCommand 的输入方块,这样就可产生出事件处理程序。
另外,你的按钮的 CommandName 最好还是设一下比较好,因为,切换页次、
排序、编辑、更新、取消等等这些 GridView 的 LinkButton 也都会触发
RowCommand 事件,可透过 CommandName 分辨是否是你的按钮 Clicked。
最後,如何找到「哪一个Row」的程式写法如下,一并提供给您参考,希望会有帮助: :)
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "btnXXX")
{
// iRow 即是该列的编号
int iRow = Convert.ToInt32(e.CommandArgument);
// string sData = GridView1.Rows[iRow].Cells[1].Text
// ...
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.100.238
1F:→ TeemingVoid:PO出後才发现两人同时回文,唉,我打字太慢了... :p 01/20 00:34
2F:→ TeemingVoid:DeepSix的内容比较简明扼要! ^^ 01/20 00:36
3F:→ TeemingVoid:因为还差 7 篇文章才能在某一版推文, 01/20 00:39
4F:→ TeemingVoid:内容也有多补充一点,所以,我就厚脸皮不删文 ;) 01/20 00:40
5F:推 brian90191:推这一篇,我本来要回跟你一模一样的东西 ~"~ 01/20 00:47
6F:→ brian90191:要触发gridview的自订按钮最好还是设定一下CommandName 01/20 00:48
7F:→ brian90191:也可以参考一下MSDN的这篇文章 01/20 00:50
9F:推 kevin888:简单明了 01/20 10:33
10F:→ epola:谢谢各位的说明,原来是我忘了增加事件 ! 01/23 23:57
11F:→ glennchen:QQQQQQQQQQQQQQQQ 01/24 00:34