【问题标题】:GridView Column Width AlteringGridView 列宽改变
【发布时间】:2009-02-13 15:09:10
【问题描述】:

有人可以帮我解决我的问题吗?

我在网页中有一个 gridview,其数据源是 oracle 数据库。我想知道您在浏览网页时是否可以更改列宽?

string select = "SELECT * FROM TABLE"

OracleCommand cmd = new OracleCommand(select, connectionstring);
cmd.Connection.Open();

GridView.DataSource = cmd.ExecuteReader();
GridView.DataBind();

这会在 gridview 中输出表格。有没有办法在浏览器中更改 gridview 属性?也许是一些 javascript?

提前谢谢你,

【问题讨论】:

    标签: asp.net data-binding gridview


    【解决方案1】:

    您可以通过 gridview 本身的列中的样式来指定这些属性。您可以将 AutoGenerateColumns 属性设置为 false,并指定所需的列,并指定每列内的大小。此外,遵循良好的网页设计实践,您可以使用 css 来设置每一列的样式。如果您想即时更改它,我建议您使用 ItemTemplates,并添加您可以在现场修改的组件。

    例如:

    <asp:GridView runat="server" AutoGenerateColumns="false" ID="Grid" DataSourceID='MyObjectDataSource' CssClass="grid_table">
                    <AlternatingRowStyle CssClass="even" />
                    <Columns>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <div id="NameColumn" runat="server">Name Center</div>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <%# Eval("LastName") %>, <%# Eval("FirstName") %>
                            </ItemTemplate>
                        </asp:TemplateField>
                        <asp:TemplateField>
                            <HeaderTemplate>
                                <div id="AgeColumn" runat="server">Age</div>
                            </HeaderTemplate>
                            <ItemTemplate>
                                <%# Eval("Age") %>
                            </ItemTemplate>
                        </asp:TemplateField>
                    <EmptyDataTemplate>There are no Users</EmptyDataTemplate>
                </asp:GridView>
    

    使用此代码,您可以访问列宽:

    NameColumn.Width = 100;
    AgeColumn.Width = 2;
    

    但是,您可以通过多种方式完成此操作,包括直接获取列:

    Grid.Columns[0].HeaderStyle.Width = 100;
    Grid.Columns[0].ItemStyle.Width = 100;
    Grid.Columns[1].HeaderStyle.Width = 2;
    Grid.Columns[1].ItemStyle.Width = 2;
    

    或者再次使用 css:

    Grid.Columns[0].HeaderStyle.CssClass = "name_column_header";
    Grid.Columns[0].ItemStyle.CssClass = "name_column_data";
    Grid.Columns[1].HeaderStyle.CssClass = "age_column_header";
    Grid.Columns[1].ItemStyle.Width = "age_column_data";
    

    无论如何,世界是你的牡蛎,这些只是一些起点。

    【讨论】:

    • 感谢您的回答。我不知道它是否可以帮助我......你在这里给出的内容会改变编译前的宽度。如果你想在它运行时改变宽度呢?
    【解决方案2】:

    在gridview的行数据绑定事件中使用此代码

    e.Row.Cells[8].Width = new Unit("800px");

    请确保您的 gridview 大小必须大于列大小。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 2013-10-16
      • 1970-01-01
      相关资源
      最近更新 更多