【问题标题】:ASP.NET How to make TextBox width dependent on GridView column's width?ASP.NET 如何使 TextBox 宽度依赖于 GridView 列宽?
【发布时间】:2015-01-26 10:44:40
【问题描述】:

我需要在表格(GridView)上制作过滤器,在每列的顶部应该出现“TextBox”以输入过滤器值。 GridView 宽度不固定,列的宽度总是根据结果而变化。当 GridView 的列宽发生变化时,如何使列顶部的 TextBox 宽度自动改变?

如图所示,共有 3 列。白色 - 文本框(用于过滤数据),黄色 - GridView

这是我当前的代码:

<form id="form1" runat="server">
<div>
    <asp:TextBox ID="InsertName" runat="server" width="130px" placeholder="Name Filter..."></asp:TextBox>
    <asp:TextBox ID="InsertEmail" runat="server" width="130px" placeholder="Domain Filter..."></asp:TextBox>
    <asp:TextBox ID="InsertCountry" runat="server" width="130px" placeholder="Domain Filter..."></asp:TextBox>
    <br />
    <br />
</div>
    <asp:GridView ID="GridView1" runat="server" BackColor="#FFFFB3" width="390px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
    </asp:GridView>
</form>

在这里,我为每个 TextBox 和 GridView 设置了固定宽度。但这里有个问题,GridView 的宽度是固定的,正如我写的width="390px",但列的宽度总是在变化。你有什么想法吗?

【问题讨论】:

    标签: c# html asp.net forms text


    【解决方案1】:

    您无法在当前 HTML 标记中完成此操作,因为包含文本框的 DIV 不知道 GridView 调整大小。

    相反,您可以像这样在TemplateField 中使用HeaderTemplate(文本框宽度为100%):

    <asp:GridView ID="GridView1" runat="server" BackColor="#FFFFB3" width="390px" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
      <Columns>
        ...
        <asp:TemplateField HeaderText="Name">
          <HeaderTemplate>
            <asp:TextBox ID="InsertName" runat="server" width="100%" placeholder="Name Filter..."></asp:TextBox>
          </HeaderTemplate>
          <ItemTemplate>
          ...
          </ItemTemplate>
        </asp:TemplateField>
        ...
      </Columns>
    </asp:GridView>
    

    【讨论】:

    • 感谢您的回答,但在 ItemTemplate 中应该插入什么?之后呢?
    • 您可以在项目模板中放置任何东西(ASP.NET 控件、HTML 标记...等)。之后(和之前)它是您的 GridView 列的其余部分。有关模板字段的更多信息,您可以参考:msdn.microsoft.com/en-us/library/aa479353.aspx
    • 我无法成功获取它,我从 aspx.cs 文件中获取数据到网格。我给定的示例中的代码应该如何?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 2012-01-06
    • 2023-03-29
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多