【问题标题】:How to get Text box value from Grid view header template?如何从网格视图标题模板中获取文本框值?
【发布时间】:2019-03-07 10:40:58
【问题描述】:

我想要网格视图标题模板文本框值。我编写代码来获取价值,但它返回 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>

在代码 behind.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;

我该如何解决这个问题?请帮帮我!

【问题讨论】:

  • 您在代码隐藏的什么地方编写了该代码?
  • 如果 GridView 中有任何行,则此代码有效。如果没有行,则文本框不存在。
  • 我用代码后面的代码更新了我的代码
  • Hello VDWWD,gridview heder 上的文本框,我用于过滤 gridview 数据。

标签: asp.net gridview


【解决方案1】:

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

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

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

【讨论】:

  • 使用Request.Form 是不好的做法,不应该被需要。
  • 除了某些页面上的大集合大小之外,使用 Request.Form 的其他缺点是什么?
猜你喜欢
  • 2019-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多