【问题标题】:How to control column width in gridview?如何控制gridview中的列宽?
【发布时间】:2014-03-23 05:13:40
【问题描述】:

如何使 GridView 自动调整每列的宽度或固定 Default.aspx 中每列的宽度?我遇到的问题是某些列太宽而其他列太窄(数据转到下一行)。

<div class="divNext">
    <asp:ScriptManagerProxy ID="DisplayResultsScriptManager" runat="server">
    </asp:ScriptManagerProxy>
    <asp:UpdatePanel ID="DisplayResultsUpdatePanel" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <div>
                <asp:GridView ID="GridViewX" RowStyle-Wrap="false" AllowSorting="true"
                    GridLines="Vertical" OnSorting="GridViewX_Sorting" OnRowDataBound="GridViewX_RowDataBound"
                    runat="server" Height="100" Width="100%" EnableViewState="true">
                </asp:GridView>
            </div>
            <asp:Timer ID="ResultsTimer" Interval="60000" Enabled="true" runat="server" OnTick="DisplayResultsTimer_Tick">
            </asp:Timer>
        </ContentTemplate>
    </asp:UpdatePanel>
</div>

【问题讨论】:

  • 你能把它贴在小提琴里吗?
  • 感谢您对如何创建固定列宽的建议。有什么方法可以让 GridView 根据数据长度自动调整列宽?

标签: c# asp.net css gridview


【解决方案1】:

添加&lt;RowStyle CssClass="rowstyle" /&gt;

 <asp:GridView ID="GridViewX" RowStyle-Wrap="false" AllowSorting="true"
                    GridLines="Vertical" OnSorting="GridViewX_Sorting" OnRowDataBound="GridViewX_RowDataBound"
                    runat="server" Height="100" Width="100%" EnableViewState="true">
                 <RowStyle CssClass="rowstyle" />
                </asp:GridView> 

CSS:

<style>
        .rowstyle td
        {
            width:150px;
        }

    </style>

【讨论】:

    【解决方案2】:

    如果您想对每一列进行更多控制,则需要使用 BoundField 或其他一些字段。

    查看 this page 的声明性语法部分以了解其他类型的字段。

    注意:如果您自己创建列,请确保AutoGenerateColumns="False"

    <asp:GridView ID="GridViewX" runat="server" AutoGenerateColumns="False">
        <Columns>
            <asp:BoundField DataField="Name" HeaderText="Name">
                <ItemStyle Width="150px"/>
            </asp:BoundField>
            <asp:BoundField DataField="Address" HeaderText="Address">
                <ItemStyle Width="50px"/>
            </asp:BoundField>
        </Columns>
    </asp:GridView>
    
    protected void Page_Load(object sender, EventArgs e)
    {
        GridViewX.DataSource = new List<Custom>
        {
            new Custom {Name = "Jon Doe", Address = "123 Street"},
            new Custom {Name = "Merry Doe", Address = "123 Street"},
        };
        GridViewX.DataBind(); 
    }
    
    public class Custom
    {
        public string Name { get; set; }
        public string Address { get; set; }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-12
      • 2014-01-19
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 2017-08-14
      • 2019-01-31
      相关资源
      最近更新 更多