我正在努力寻找解决方案,
> <asp:GridView ID="GridView1" runat="server" EnableViewState="False"
> BorderWidth="1"
> HorizontalAlign="Left" HeaderStyle-BackColor="#5c7990" CellPadding="4" ForeColor="#333333"
> AutoGenerateColumns="false" GridLines="None" DataKeyNames="ID" AutoGenerateDeleteButton="false"
> EmptyDataText="No records found" CssClass="GridView123" Width="90%"
> OnRowCreated="GridView1_RowCreated">
> <HeaderStyle CssClass="GridHeader" />
> <FooterStyle CssClass="GridFooter" />
> <RowStyle CssClass="RowStyle" VerticalAlign="Top" Wrap="true" />
> <AlternatingRowStyle CssClass="AlternateRowStyle" VerticalAlign="Top" Wrap="true" />
> <Columns>
> <asp:BoundField DataField="ID" HeaderText="ID" ItemStyle-Width="20%">
> <ItemStyle Width="20%"></ItemStyle>
> </asp:BoundField>
> <asp:TemplateField HeaderText="Name" ItemStyle-Width="100%" ItemStyle-Wrap="true">
> <ItemTemplate>
> <span id="PName<%# Eval("ID") %>">
> <%# Eval("Name") %></span>
> </ItemTemplate>
> <ItemStyle Wrap="True" Width="100%"></ItemStyle>
> </asp:TemplateField>
>
> </columns>
<asp:GridView>
这是我的网格视图。我的问题是gridview宽度随着不同的数据而变化。当列具有巨大的数据时,它正在扩展,当列填充小数据时,它正在缩小。
我已经将包装物应用于柱
我想要一个网格视图,它将以唯一的大小始终显示数据填充的内容。
感谢您的帮助......
答案 0 :(得分:0)
那是因为你使用%宽度 - 而是使用固定宽度。确定所需的最大宽度可能需要一些反复试验。改为在CSS中设置宽度,并将一个类应用于列。
看看这个:
http://www.emadmokhtar.com/2012/07/add-elegant-style-to-asp-net-webforms-gridview-controls/
理想情况下,如果你想要干净的标记,你应该使用一个不发出表格的ListView。
答案 1 :(得分:0)
将<asp:GridView ...
的宽度从Width="90%"
设置为Width="640"
,这样就可以达到640像素的标准宽度。
要强制文本变形而不增长,你还需要不要将ItemStyle-Wrap
设置为true,以及以太没有它,以太将它设为false。
ItemStyle-Wrap="false"
答案 2 :(得分:0)
你有很多冗余宽度属性。您不需要在BoundField和ItemStyle中为同一列声明它。但是,我认为你遇到问题的原因是因为你设置的是120%。
我在使用HTML的无数小时内发现的是在表格列上使用百分比宽度时,不要超过100%,并且总是留下1列没有宽度。即使你将所有列加到100%宽度,我也看到表格做了奇怪的事情。我通常在除“主”列之外的所有列上定义宽度,然后使用剩余的宽度量。