ASP.NET中的索引值怎么利用显示数据表格进行获取

  介绍

这篇文章给大家介绍ASP。网中的索引值怎么利用显示数据表格进行获取,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在用显示数据表格控件时,我们经常会碰到获取当前行的索引,通过索引进行许多操作,例如,可以获得当前行某一个控件元素;设置某一元素的值等等。下面结合实例介绍几种获得显示数据表格当前行索引值的方法。

实例:
①目的:获取显示数据表格中RowCommand的当前索引行。
②前台页面:在显示数据表格中添加一模版列,里面添加一个LinkButton控件。
代码:

& lt; asp:列中HeaderText=安僮鳌氨?   & lt; ItemTemplate>   & lt; asp: LinkButton ID=發btnQianRu"runat=皊erver"CommandName=癚ianRu"   CommandArgument=& # 39; & lt; % # Eval (“Id") %祝辞& # 39;在签入& lt;/asp: LinkButton>   & lt; asp: LinkButton ID=發btnQianChu“;runat=皊erver"CommandName=癚ianChu"祝辞签出& lt;/asp: LinkButton>   & lt;/ItemTemplate>   & lt;/asp: TemplateField>      

小提示:如果在后台代码中用e。CommandArgument取值的话,前台代码就必须在按钮中设置CommandArgument的值,值为绑定的数据库字段。如:
//因为在客户端中就已经将LinkButton的CommandArgument与主键Id给绑定了所以在此可以直接用e。CommandArgument得出主键ID的值
int ID=Convert.ToInt32 (e.CommandArgument.ToString ());
③在显示数据表格里已经设置了LinkButton为事件处理按钮,将通过以下方法获取索引:

保护无效gv_Company_RowCommand(对象发送方,GridViewCommandEventArgs e) {
  如果(e。CommandName==癚ianRu")
  
  {
  
  

【方法一】

 GridViewRow drv=((GridViewRow) (((LinkButton) (e.CommandSource)) .Parent.Parent));//此得出的值是表示那行被选中的索引值
  正id=Convert.ToInt32 (GridView1.DataKeys [drv.RowIndex] value);//此获取的值为显示数据表格中绑定数据库中的主键值
  

注意:运用此方法,需要对显示数据表格的DataKeyNames属性进行设置,此例中设置为主键字段。

【方法二】

 GridViewRow drv=(GridViewRow) ((LinkButton) e.CommandSource) .NamingContainer;//此得出的值是表示那行被选中的索引值
  int id=Convert.ToInt32 (GridView1.Rows [drv.RowIndex] .Cells [0]。text);//此获取的值为显示数据表格中绑定数据库中的主键值,取值方法是选中的行中的第一列的值,drv.RowIndex取得是选中行的索引
  }
  }
  

此外,还有一些方法可以实现获得当前行索引值。

【方法三】

在linkbutton控件的命令事件,利用发送者的父母获取显示数据表格中的当前行。

保护无效lbtnQianChu_Command(对象发送方,CommandEventArgs e)
  {
  LinkButton磅=(LinkButton)发送者;
  DataControlFieldCell dcf=(DataControlFieldCell) lb.Parent;
  GridViewRow gvr=(GridViewRow) dcf.Parent;//此得出的值是表示那行被选中的索引值
  lbtnQianChu。SelectedIndex=gvr.RowIndex;
  }
  
  

【方法四】

在linkbutton控件的点击事件,获取显示数据表格中的当前行。

保护无效LinkButton1_Click(对象发送方,EventArgs e)
  {//行号
  int行=((GridViewRow) ((LinkButton)发送者).NamingContainer) .RowIndex;
  }
  
  

【方法五】

如果在模板列中添加一下DropDownList控件,并开启其将AutoPostback属性,在DropDownList的SelectedIndexChanged事件中,获取显示数据表格中的当前行。

下面是SelectedIndexChanged事件的代码摘要:

 DropDownList ddl=(DropDownList)发送者;
  GridViewRow gvr=(GridViewRow) ddl.NamingContainer;
  int id=int.Parse (GridView1.DataKeys [gvr.RowIndex] [0] .ToString ());
  int num=int.Parse (ddl.Text);
  

第一句用来获取触发事件的DropDownList控件。
第二句就利用该控件的NamingContainer属性,获取其容器,也就是GridViewRow对象。
提示:由于DropDoweList与按钮不同,无法指定其CommandName,所以,通过用NamingContainer属性来解决问题。
先来看看微软对该NamingContainer属性的解释:
获取对服务器控件的命名容器的引用,此引用创建唯一的命名空间,以区分具有相同的控制。ID属性值的服务器控件。
ASP。网网络应用程序的每一页均包含控件的层次结构。此层次结构与控件是否生成用户可见的UI无关。给定控件的命名容器是层次结构中该控件之上的父控件,此父控件实现INamingContainer接口。实现此接口的服务器控件为其子服务器控件的ID属性值创建唯一的命名空间。

ASP.NET中的索引值怎么利用显示数据表格进行获取