2009-08-06 57 views
1

我有一个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设置。

回答

2

在jQuery之前,先试试这个。我通过Google搜索“ie overflow:hidden table cell”找到了它。

How to prevent HTML tables from becoming too wide

使用JavaScript的方式通常不是个好主意,尤其是如果稍后在产品生命另一开发商走来,想,说,添加一列。同意,有时在一起攻击一个解决方案在短期内感觉更好,但它只会导致未来头痛。

+0

非常感谢您的链接... table-layout:固然似乎已经做了些什么...所以现在似乎大部分的文本框本身是隐藏的,而不是隐藏包含的文本本身最初进入时的行为)......所以看起来这可能是在正确的道路上迈出的第一步。我仍然想调查蛮力的方式,因为它看起来更不安全,尽管不推荐。 :) – tbone 2009-08-06 19:50:05

+0

所以它似乎修复了溢出问题,但列宽仍然不起作用。上帝我爱CSS! – tbone 2009-08-06 20:00:34

+0

这个页面是否可以在任何我可以混淆的地方生存?即使是HTML而不是直播网站的快照也没问题。 – Matchu 2009-08-06 20:05:34

0

恰恰解决了自己这个问题,我只是下跌...

更改文档类型定义

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 

,但关心的页面的其他部分不启动跳来跳去。

相关问题