Grdiview中RowCommand中取行号,及多个ButtonField实现多种选择
1.RowCommand中取行号
可以有两种实现方法
(1)前台绑定。
ItemStyle-HorizontalAlign="center"
ItemStyle-Width="80px">
runat="server" CommandName="freeze"
CommandArgument='
DataBinder.(Container,"RowIndex") %>'
BorderStyle="Groove" OnClientClick="javascript:return
confirm('确定?');" />
为了显示好看可以用代替
或用
CommandArgument='
%>'
(2)后台绑定
在girdview的RowDataBound事件中
//绑定时,将行号绑定到 button 上。
LinkButton bt = new LinkButton();
bt = (LinkButton)e.Row.Cells[7].FindControl("btnLZ");
bt.CommandArgument = e.Row.RowIndex.ToString();
使用时:
protected void grdMember_RowCommand(object sender,
GridViewCommandEventArgse)
{
//取INdex
int index = Convert.ToInt32(e.CommandArgument);
DataKey key = grdMember.DataKeys[index];
string tt = key.Value.ToString();
//判断哪个按钮
//switch (e.CommandName.ToString())
//{
// case
"DD":
// DoSomething();
// break;
// case
"LZ":
// DoSomethingElse();
// break;
//}
}
都是将Index绑定到Button的CommandArgument上
2. 多个ButtonField实现多种选择
有时候仅有一个SelectButton不能满足需求,但又不能添加多个SelectButton,解决办法:用多个ButtonField实现.
前台代码:
ShowHeader="False">
CausesValidation="false" CommandName="LZ"
Text="离职">
ShowHeader="False">
CausesValidation="false" CommandName="DD"
Text="调动">
重要的是CommandName=""
下面就可以在Girdview的RowCommand控件中判断是按的是哪个按钮了
protected void grdMember_RowCommand(object sender,
GridViewCommandEventArgse)
{
//取INdex
//int index = Convert.ToInt32(e.CommandArgument);
//DataKey key = grdMember.DataKeys[index];
//string tt = key.Value.ToString();
//判断哪个按钮
switch (e.CommandName.ToString())
{
case "DD":
DoSomething();
break;
case "LZ":
DoSomethingElse();
break;
}
}
最终效果: