如何使用C#后面的代码获取ItemTemplate中的标签?

时间:2016-09-21 09:00:15

标签: c# asp.net

我有一个标签,在Itemtemplate中,我想获得标签的值但是 只是找不到标签的控制权,请有人帮帮我吗?谢谢

aspx代码:

<asp:TemplateField HeaderText="工號" SortExpression="BS_ID"> <ItemTemplate> <asp:Label ID="lblBSID" runat="server" Text='<%# Eval("BS_ID") %>' /> </ItemTemplate> <EditItemTemplate> <asp:Textbox ID="tbBS_ID_edit" runat="server" Text='<%# Eval("BS_ID") %>' /> </EditItemTemplate> <FooterTemplate> <asp:TextBox ID="BS_ID_tb" Text="SK" MaxLength="7" runat="server" /> </FooterTemplate> </asp:TemplateField> 代码

  1. 这就是我的变种
  2. //string lb_BS_ID = ((Label)GridView1.FindControl("lblBSID")).Text; //this._userID = lb_BS_ID;

    1. 我也尝试
    2. //string lb_BS_ID = ((Label)GridView1.Rows[0].FindControl("lblBSID")).Text; //this._userID = lb_BS_ID;

      1. 另外
      2. //string lb_BS_ID =((Label)GridView1.Rows[e.RowIndex].Cells[0]FindControl("lblBSID")).Text; //this._userID = lb_BS_ID;

        但这些对我不起作用请帮助我&gt;&lt;

2 个答案:

答案 0 :(得分:0)

而不是这个: Lable label = (Label)GridView1.Rows[e.RowIndex].FindControl("lblBSID"); string value = label.Text;

试试这个。 :

function __construct()
{
    parent::__construct();
    if(! isset($this->session->userdata['user_info'])){
        redirect($this->data['admin_url'].'authentication');
        exit ;
    }
}

注意:如果您只需要在第一行中找到标签的值,则使用Rows [0]等等而不是e.RowIndex。 我希望它有所帮助。

答案 1 :(得分:0)

用于更新记录使用gridview的“OnRowUpdating”事件; 使用代码1,2和3时,请确保您的网格绑定到某些数据。

  

在网格绑定到某些数据之前,您无法访问任何控件

    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
            {
                int trackingno = (int)GridView1.DataKeys[e.RowIndex].Value;
                Label trackingno = (Label)GridView1.Rows[e.RowIndex].FindControl("yourLabelControlID");
//perform your update function
    }

对于其他操作,您可以使用“OnRowDataBound”

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {

                DropDownList ddeditpickuprider = (DropDownList)e.Row.FindControl("yourDropdownControlID");
}