如何制作相同大小的Gridview

时间:2014-01-20 07:16:00

标签: asp.net gridview

我有一个asp.netC#)项目我正在使用gridview来显示详细信息。但我的所有细胞大小不一样。请帮我把它们制成相同的尺寸。

enter image description here

aspx设计代码Gridview

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                                DataSourceID="SqlDataSource1" ForeColor="#333300" 
                                onpageindexchanging="GridView1_PageIndexChanging" 
                                AutoGenerateColumns="False" EnableSortingAndPagingCallbacks="True" 
                                HorizontalAlign="Center" PageSize="5">
                                <RowStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
                                <Columns>
                                    <asp:BoundField DataField="Enrollment" HeaderText="Enrollment" 
                                        SortExpression="Enrollment" />
                                    <asp:BoundField DataField="Subject" HeaderText="Subject" 
                                        SortExpression="Subject" />
                                    <asp:BoundField DataField="Message" HeaderText="Message" 
                                        SortExpression="Message" />
                                </Columns>
                                <FooterStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                <PagerStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                                <HeaderStyle BorderColor="Black" BorderStyle="Inset" HorizontalAlign="Center" 
                                    VerticalAlign="Middle" />
                                <EditRowStyle BorderStyle="Solid" />
                            </asp:GridView>

3 个答案:

答案 0 :(得分:3)

您可以为网格视图指定100%的宽度。因为您提供的图像的网格视图具有整页宽度。

 <asp:GridView ID="dtgGrid" runat="server"  Width="100%" >

然后,您可以为列提供相同的宽度百分比如下所示。 代码可能会根据您的设计进行更改。但方法如下。

<HeaderStyle Width="33%"  />

您的代码

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
                            DataSourceID="SqlDataSource1" ForeColor="#333300" 
                            onpageindexchanging="GridView1_PageIndexChanging" 
                            AutoGenerateColumns="False" EnableSortingAndPagingCallbacks="True" 
                            HorizontalAlign="Center" PageSize="5" Width="100%">
                            <RowStyle HorizontalAlign="Center" VerticalAlign="Middle" Wrap="True" />
                            <Columns>
                                <asp:BoundField DataField="Enrollment" HeaderText="Enrollment" 
                                    SortExpression="Enrollment" />
                                <asp:BoundField DataField="Subject" HeaderText="Subject" 
                                    SortExpression="Subject" />
                                <asp:BoundField DataField="Message" HeaderText="Message" 
                                    SortExpression="Message" />
                            </Columns>
                            <FooterStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                            <PagerStyle HorizontalAlign="Center" VerticalAlign="Middle" />
                            <HeaderStyle BorderColor="Black" BorderStyle="Inset" HorizontalAlign="Center" 
                                VerticalAlign="Middle" Width="33%" />
                            <EditRowStyle BorderStyle="Solid" />
                        </asp:GridView>

答案 1 :(得分:3)

尝试添加RowStyle

 <RowStyle Width="300px"/>

<强>(OR)

1.在标题中添加CSS。

<style type="text/css">
    .maxWidthGrid
    {
        max-width: 300px;
        overflow: hidden;
    }
</style>

2.然后在必要的列中使用CSS,例如ItemStyle-CssClass =“maxWidthGrid”

<asp:BoundField ItemStyle-CssClass="maxWidthGrid" DataField="ClientName" HeaderText="Client Name"
                    ReadOnly="True" SortExpression="ClientName" />

<强>(OR)

要修复列的宽度,我们应该破坏单元格中的文本。以下代码供您参考。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        foreach (TableCell myCell in e.Row.Cells)
        {
            myCell.Style.Add("word-break", "break-all");
            myCell.Width = 300;
        }
    }

答案 2 :(得分:1)

修复列宽或您可以使用 css ,或者使用 SQL 还有一个选项只写这样的查询:

SELECT Enrollment, Subject, SUBSTRING(Message, 0, 35) AS Message
FROM tblInfo