GridView列宽度更改

时间:2009-02-13 15:09:11

标签: asp.net data-binding gridview

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

我在网页中有一个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?

提前谢谢你,

2 个答案:

答案 0 :(得分:1)

您可以通过gridview本身列中的样式指定这些属性。您可以将AutoGenerateColumns属性设置为false,并指定所需的列,并指定每列中的大小。此外,遵循良好的Web设计实践,您可以使用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";

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

答案 1 :(得分:1)

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

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

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