Asp.net datagrid,设置列的宽度

时间:2015-01-09 08:46:17

标签: asp.net

我有以下asp.net表,使用datagrid创建:

<%@ Page Language="vb" MasterPageFile="~/Masterpage.master" AutoEventWireup="false" MaintainScrollPositionOnPostback="true"  CodeFile="View.aspx.vb" Inherits="MDGRenewals.page_views"  %>
<%@ Register Src ="~/Webcontrols/Admin/Users/RoleManager.ascx" tagprefix="mdg" TagName="rolemanager" %>

<asp:Content ID="Content1" ContentPlaceHolderID="contentMain" runat="server">
        <form id="Form1" method="post" runat="server">
            <p><asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" CellPadding="3">

                <ItemStyle CssClass="DGR_ITEM"></ItemStyle>
                <HeaderStyle CssClass="DGR_HEADER"></HeaderStyle>

                    <Columns>

                        <asp:TemplateColumn HeaderText="Username">
                            <ItemTemplate>
                                <asp:Label id="Label1" runat="server" Text='<%#Eval("user_id")%>'></asp:Label>
                            </ItemTemplate>
                        </asp:TemplateColumn>

                        <asp:TemplateColumn HeaderText="Page">
                            <ItemTemplate>
                                <asp:Hyperlink id="Link1" runat="server" Text='<%#Container.DataItem("page_name")%>'></asp:Hyperlink>
                            </ItemTemplate>
                        </asp:TemplateColumn>

                        <asp:TemplateColumn HeaderText="View Count">
                            <ItemTemplate>
                                <asp:Label id="Label3" runat="server" Text='<%#Container.DataItem("Count")%>'></asp:Label>
                            </ItemTemplate>

                        </asp:TemplateColumn>

                    </Columns>

                </asp:datagrid></P>
        </form>
</asp:Content> 

我的问题是我希望能够设置列的宽度,但我无法做到这一点。

从代码中可以看出,我尝试过:

                <ItemStyle Width="200px"></ItemStyle>
                <HeaderStyle  Width="200px"></HeaderStyle>

但它没有回应。

我已经编辑了帖子以包含css以及使用css的评价:

.DGR_HEADER
{
    font-weight: bolder;
    font-size: 11px;
    vertical-align: baseline;
    width: 200px;
    cursor: default;
    color: black;
    font-family: Tahoma, Arial, Verdana, Helvetica, sans-serif;
    background-color: LightSteelBlue;
    text-align: center;
    text-decoration: none;
    height:15px;
}


.DGR_ITEM
{
    font-weight: normal;
    font-size: xx-small;
    width: 200px;
    cursor: default;
    color: black;
    font-family: Tahoma, Arial, Verdana, Helvetica, sans-serif;
    height: 20px;
    background-color: silver;
    text-align: left;
}

3 个答案:

答案 0 :(得分:4)

试试这个。您可以像这样设置列的宽度

ItemStyle-Width="30"
<asp:TemplateColumn HeaderText="Username" ItemStyle-Width="30">

答案 1 :(得分:1)

ItemStyle-Width和HeaderStyle对我来说都不起作用......直到我的网格足够宽,以至于它有“空间”来扩展相关列。

我一直将列宽设置为400px,没有任何改变!

然后我将我的整个网格设置为4000px,而oila,现在该列实际上是400px。所有的列都被挤压在一起,所以不能生长那一列。

这可能不是每个人的答案,但如果你不能让这些属性起作用,请尝试一下。

答案 2 :(得分:0)

由于datagrids只渲染普通的html <table>,你可以使用css:

table td {
    width: 200px;
}

要引用单个表格,您可以将其直接放在aspx文件(或ascx或whaterver)中

#<%= this.DataGrid1.ClientID %> td {
    width: 200px;
}