|
GridView是一个功能非常强大使用简单的控件,我一般喜欢用它来呈现数据。因为有些字段的实际长度是不确定的,而有些字段的长度则是固定的,对于这样的字段,用户一般都希望它在显示的时候宽度能够固定下来,而不被别的字段挤扁。原来,我是采用设置该字段的width属性来达成目标的,一般情况下,都能和想像的一样,但有时如果有些字段内容太长,仍然会使其被强制换行了。后来,我发现其中有个wrap属性,可以设置其是否换行,默认是true,即换行,如果将其设为false,表格再挤,该字段也不会扁了。
另一种方法:在vs2005中让GridView的标题头固定
主要是将GridView的ShowHeader设为false,即GridView的头部不显示然后在Panel中新建一个Header,要与GridView一致,废话不一致的效果也没什么意思的啊!将GridView放在Panel中,然后应用CSS进行固定列。主要有三处要使用CSS样式,1.Panel中创建的table,table中的td以及GridView中的数据行ItemStyle。以下是代码:
<asp:Panel ID="Panel1" runat="server" Height="200px" ScrollBars="Auto" Width="100%">
<table cellpadding="0" cellspacing="0" class="fixedheadertable">
<tr> <td class="fixedheadercell">
Customer ID</td>
<td class="fixedheadercell">
Company Name</td>
<td class="fixedheadercell">
Contact Name</td>
<td class="fixedheadercell"> Country</td> </tr> </table>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4"
DataSourceID="SqlDataSource1" ForeColor="#333333" GridLines="None" ShowHeader="False">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<Columns>
<asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" SortExpression="CustomerID">
<ItemStyle CssClass="gridcell" />
</asp:BoundField>
<asp:BoundField DataField="CompanyName" HeaderText="CompanyName" SortExpression="CompanyName">
<ItemStyle CssClass="gridcell" />
</asp:BoundField>
<asp:BoundField DataField="ContactName" HeaderText="ContactName" SortExpression="ContactName">
<ItemStyle CssClass="gridcell" />
</asp:BoundField>
<asp:BoundField DataField="Country" HeaderText="Country" SortExpression="Country">
<ItemStyle CssClass="gridcell" />
</asp:BoundField>
</Columns>
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<EditRowStyle BackColor="#999999" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
</asp:Panel>
附:css代码 .fixedheadercell { FONT-WEIGHT: bold; FONT-SIZE: 10pt; WIDTH: 200px; COLOR: white; FONT-FAMILY: Arial; BACKGROUND-COLOR:darkblue; } .fixedheadertable { left: 0px; position: relative; top: 0px; padding-right: 2px; padding-left: 2px; padding-bottom: 2px; padding-top: 2px; } .gridcell { WIDTH: 200px; }
|