1

我正在使用网格视图,并且我需要每当任何列包含比其宽度长的文本时,它都应该换行,或者它应该在新行中显示文本的另一部分。下面是网格视图代码:

 <asp:GridView ID="GridView1"  AllowSorting="True" runat="server" 
        onsorting="GridView1_Sorting" AllowPaging="True" PageSize="6" CellPadding="4" 
        onpageindexchanging="GridView1_PageIndexChanging" 
        onrowdatabound="GridView1_RowDataBound" ForeColor="#333333" 
        GridLines="Vertical">
        <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
        <EditRowStyle BackColor="#999999" />
        <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
        <PagerStyle Wrap="false" BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
        <RowStyle Wrap="false" BackColor="#F7F6F3" ForeColor="#333333" />
        <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
        <SortedAscendingCellStyle BackColor="#E9E7E2" />
        <SortedAscendingHeaderStyle BackColor="#506C8C" />
        <SortedDescendingCellStyle BackColor="#FFFDF8" />
        <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
    </asp:GridView>  
4

3 回答 3

1

而不是像ItemStyle您一样为 gridview 使用不同的设置,而应该编写一个单独的css class for it.
这是一个很好的链接
Asp.net Css Gridview Styling
Fixed Column Headers For ASP.NET Gridview

例子

         <%@ Page Language=" C#" %>

    <head runat="server">
        <title>Untitled Page</title>
        <style type="text/css">
            .headerStyle
            {
                background-color: #FF6600;
                color: #FFFFFF;
                font-size: 8pt;
                font-weight: bold;
            }

            .itemStyle
            {
                background-color: #FFFFEE;
                color: #000000;
                font-size: 8pt;
            }

            .alternateItemStyle
            {
                background-color: #FFFFFF;
                color: #000000;
                font-size: 8pt;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="ItemsGridView" AutoGenerateColumns="false"
                DataKeyNames="ItemID" runat="server">
                <Columns>
                    <asp:BoundField DataField="ItemID" HeaderText="Item ID" ReadOnly="true" ItemStyle-Width="100px"
                        ItemStyle-CssClass="itemStyle" />
                    <asp:BoundField DataField="ItemName" HeaderText="Item Name" ReadOnly="true" ItemStyle-Width="100px" />
                    <asp:BoundField DataField="ClStk" HeaderText="Item closingStock" ReadOnly="true"
                        ItemStyle-Width="100px" />
                </Columns>
                <AlternatingRowStyle CssClass="alternateItemStyle" />
                <HeaderStyle CssClass="headerStyle" />
            </asp:GridView>

        </div>
        </form>
    </body>
于 2013-02-12T12:09:55.090 回答
1

您可以像这样将 TemplateField 的 ItemStyle 设置为 true:

<ItemStyle Wrap="true" Width="100px" />
于 2013-02-12T12:04:35.220 回答
0

由于您是自动生成列,因此您需要使用 RowDataBound 事件来检查每一行的每一列的长度。
这是它的文档http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

于 2013-02-12T12:09:53.270 回答