【发布时间】:2009-08-06 19:16:03
【问题描述】:
我有一个带有一些 BoundFields 和 TemplateFields 的 GridView 控件(呈现到表、tr、td)。本质上,我显示两列,应用程序名称和注释(作为文本框),我想要 35%、65% 的相对宽度。这是我的 asp.net 标记:
<asp:GridView ID="gridRequestedApps" DataSourceID="llbRequestedApplications" runat="server"
AutoGenerateColumns="False"
DataKeyNames="ComputerID, RequestID"
EnableViewState="False"
cssclass="xGridview">
<Columns>
<asp:BoundField DataField="ComputerID" HeaderText="ID" SortExpression="ComputerID" Visible="False" />
<asp:BoundField DataField="RequestID" HeaderText="ID" SortExpression="RequestID" Visible="False" />
<asp:TemplateField HeaderText="Application Name" ItemStyle-Width="35%" ItemStyle-Wrap="false">
<ItemTemplate><asp:TextBox ID="ApplicationName" runat="server" Text='<%# Bind("ApplicationName") %>' CssClass="input_text"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Notes" ItemStyle-Width="65%">
<ItemTemplate>
<div style="width:100%; overflow:hidden">
<asp:TextBox ID="UserNotes" runat="server" Text='<%# Bind("UserNotes") %>' CssClass="input_text" style="overflow:hidden"></asp:TextBox>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
现在有一点(与上面显示的 html 略有不同),我确实可以使用 35/65 的相对宽度。但是,我随后注意到,如果我将长文本放入文本框中,它会水平增长,使其包含的表格超过 100% 宽度。 (这是在 IE7 中......在 Firefox 中,overflow:hidden 似乎工作)。
所以,我开始使用 CSS 来尝试修复 IE 中的错误,但现在,它不仅仍然溢出,而且我的列宽不再符合 36/65 设置。
【问题讨论】: