gridview,repeater,datalist等從後台擷取前台控制項的ID——總結

來源:互聯網
上載者:User

注釋:全部以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('您確認刪除?');" onclick="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就可以了
         } 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.