gridview,repeater,datalist等从后台获取前台控件的ID——总结

注释:全部以linkbutton为例

 

 gridview:

  protected void lkbtnHelperNews_Click(object sender, EventArgs e)

{

LinkButton lbn = (LinkButton)sender;
  int index = ((GridViewRow)lbn.NamingContainer).RowIndex;
  int id = Convert.ToInt16(GridView1.DataKeys[index].Value);

}

 

其他:摘录文章

protected void gv_Company_RowCommand(object sender, GridViewCommandEventArgs e)
 
if (e.CommandName == "QianRu"
{   
【方法一】

GridViewRow drv 
= ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent)); //此得出的值是表示那行被选中的索引值 
 inf id=Convert.ToInt32(GridView1.DataKeys[drv.RowIndex].Value); //此获取的值为GridView中绑定数据库中的主键值 
注意:运用此方法,需要对GridView的DataKeyNames属性进行设置,此例中设置为主键字段。

【方法二】

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

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

【方法三】在linkbutton控件的Command事件,利用sender的Parent获取GridView中的当前行。
                   
protected void lbtnQianChu_Command(object sender, CommandEventArgs e)
                   
{
                    LinkButton lb 
= (LinkButton)sender;
                            DataControlFieldCell dcf 
= (DataControlFieldCell)lb.Parent;
                            GridViewRow gvr 
= (GridViewRow)dcf.Parent; //此得出的值是表示那行被选中的索引值
                            lbtnQianChu.SelectedIndex = gvr.RowIndex;
                   }

repeater:

第一种方法

 protected void lkbtnSystemNews_Click(object sender, EventArgs e)
    {
        int index = ((RepeaterItem)(sender as LinkButton).Parent).ItemIndex;
        Label lb = rptSystem.Items[index].FindControl("lblSystemID") as Label;//lblSystemID是前台的id
        int id = Convert.ToInt32(lb.Text);

//是一些查询数据库的方法

}

第二种方法,前台

 <asp:LinkButton ID="lkBtnDelete" runat="server" CssClass="xtgghref"   CommandArgument='<%#Eval("YSYS_CP_ShuangSeQiu_QiShu") %>'
                OnClientClick="return confirm('您确认删除?');" οnclick="lkBtnDelete_Click" >删除当期</asp:LinkButton>

后台:

 protected void lkbtnSystemNews_Click(object sender, EventArgs e)
    {

 LinkButton lbtId = (LinkButton)sender;
        string id = lbtId.CommandArgument.ToString();

}

其他:

protected void rptComment_ItemDataBound(object sender, RepeaterItemEventArgs e)

{

LinkButton btnDel = (LinkButton)e.Item.Controls[0].FindControl("控件ID");

 

}

 

datalist:

  protected void lkbtnHelperNews_Click(object sender, EventArgs e)
    {
              int index = ((DataListItem)((LinkButton)sender).NamingContainer).ItemIndex;
        Label lb = dlHelper.Items[index].FindControl("lblHelperID") as Label;

            int id = Convert.ToInt32(lb.Text);

}

 

其他:

protected   void   DataList1_ItemDataBound(object   sender,   DataListItemEventArgs   e) 
        

                LinkButton   link   
=   (LinkButton)e.Item.FindControl( "lkID"); //直接e.Item.FindControl就可以了
        
 }
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值