如何从网格视图标题模板获取文本框值?

时间:2018-10-02 09:57:35

标签: asp.net gridview

我想要网格视图标题模板文本框值。我编写用于获取价值的代码,但它返回null。

<asp:Button ID="btngetLocationDate" runat="server" Text="Get Filtered Data" OnClick="getTextBoxValue"></asp:Button>
 <asp:TemplateField HeaderText="Mobile Number">
                <HeaderTemplate>
                      Mobile Number:
                    <asp:TextBox ID="txtMobilenumber" runat="server" ></asp:TextBox>

                </HeaderTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblmobile" runat="server" Text='<%# Eval("Mobile Phone") %>'></asp:Label>
                </ItemTemplate>
            </asp:TemplateField>

然后在.cs后面的代码上我编写了该代码,但是它返回null

  protected void getTextBoxValue(object sender, EventArgs e)
    {

        //TableCell cell1 = TrackerGrid.HeaderRow.Cells[0];

        TextBox mobilenumber = (TrackerGrid.HeaderRow.FindControl("txtMobilenumber") as TextBox) ;
        string mobile = mobilenumber.Text;

我该如何解决?请帮助我!

1 个答案:

答案 0 :(得分:-1)

通过从页脚行获取文本框文本,我遇到了类似的问题。我不确定这是否是解决此问题的最佳方法,但是如果FindControl()成功分配了文本框,这应该可以工作。

TextBox mobilenumber = (TrackerGrid.HeaderRow.FindControl("txtMobilenumber") as TextBox);
string mobile = Request.Form[mobilenumber.UniqueID];

编辑:正如VDWWD所评论的那样,Request.Form是一种不好的做法。但是对于我的特殊用法,由于我的回发是无序的,因此我无法找到其他任何方法来从按钮单击的文本框中获取数据。