У меня есть элемент управления GridView (который рендерится в table, tr, td) с некоторыми BoundFields и TemplateFields. По сути, я отображаю два столбца, Имя приложения и Примечания (как TextBox), и я хочу 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 переполнение: показалось, что работает hidden).
Итак, я начал возиться с CSS, чтобы попытаться исправить ошибку в IE, но теперь он не только переполняется, но и ширина моих столбцов больше не соответствует настройкам 36/65.