我有一个GridView控件(呈现给table,tr,td)带有一些BoundFields和TemplateFields。本质上,我显示了两列,即应用程序名称和注释(作为文本框),并且我想要35%,65%的相对宽度。这里是我的asp.net标记:表格内的文本框增长超过100%宽度(仅IE)
<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中,溢出:隐藏似乎工作)。因此,我开始搞乱CSS以尝试修复IE中的错误,但现在,它不仅仍然溢出,而且我的列宽不再遵守36/65设置。
非常感谢您的链接... table-layout:固然似乎已经做了些什么...所以现在似乎大部分的文本框本身是隐藏的,而不是隐藏包含的文本本身最初进入时的行为)......所以看起来这可能是在正确的道路上迈出的第一步。我仍然想调查蛮力的方式,因为它看起来更不安全,尽管不推荐。 :) – tbone 2009-08-06 19:50:05
所以它似乎修复了溢出问题,但列宽仍然不起作用。上帝我爱CSS! – tbone 2009-08-06 20:00:34
这个页面是否可以在任何我可以混淆的地方生存?即使是HTML而不是直播网站的快照也没问题。 – Matchu 2009-08-06 20:05:34