2010-12-07 133 views
1

如何防止表格在外表格单元格内缠绕?防止表格缠绕

看看我的问题底部的简化示例。

我的aspx-tablerow的:

<tr runat="server" id="trButtons"> 
    <td align="left" colspan="9" valign="top" style="white-space:nowrap"><br /> 
    <asp:Button ID="btnImeiLookup" OnClick="btnImeiLookupClick" runat="server" ValidationGroup="VG_RMA_LOOKUP" CausesValidation="true" Text="lookup IMEI" ToolTip="lookup IMEI and check if RMA-Number can be generated" Width="120px" /> 
    &nbsp;&nbsp;<asp:Button ID="BtnEdit" CommandName="Edit" CommandArgument='<%# Eval("idRMA")%>' ValidationGroup="VG_RMA_SAVE" runat="server" CausesValidation="false" Text="Edit" ToolTip="edit" Width="120px" /> 
    &nbsp;&nbsp;<asp:Button ID="BtnAdd" runat="server" CommandName="Add" CausesValidation="false" Text="Add new" Width="130px" ToolTip="add new" /> 
    &nbsp;&nbsp;<asp:Button ID="BtnDelete" runat="server" CommandName="Delete" CommandArgument='<%# Eval("idRMA")%>' CausesValidation="true" Text="Delete" Width="120px" ToolTip="delete" OnClientClick="return confirm('do you really want to delete this RMA?')" /> 
    &nbsp;&nbsp;<uc4:RmaPrinterView ID="RmaPrinterView1" Visible="true" runat="server" /> 
    </td> 
</tr> 

RmaPrinterView1是一个ASP.Net用户控件:

<table cellpadding="0" cellspacing="0"> 
<tr> 
    <td> 
     <input type="button" style="width:120px; white-space:nowrap" onclick="javascript:$('#TblPrinterView').jqprint();" value="Print" title="Print" /> 
    </td> 
</tr> 
<tr> 
    <td> 
     <table id="TblPrinterView" style="display:none"> 
      <tr> 
       <td style="width:100px;white-space:nowrap"> 
        <asp:Label ID="LblRmaNumberDesc" runat="server" Text="RMA-Number:"></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="LblRmaNumber" runat="server" Text="xxxxxxxxxxxxxx"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="LblImeiDesc" runat="server" Text="IMEI:"></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="LblImei" runat="server" Text="xxxxxxxxxxxxxx"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="LblModelDesc" runat="server" Text="Model:"></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="LblModel" runat="server" Text="xxxxxxxxxxxxxx"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="LblSiDpyDesc" runat="server" Text="SI/DPY:"></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="LblSiDpy" runat="server" Text="xxxxxxxxxxxxxx"></asp:Label> 
       </td> 
      </tr> 
      <tr> 
       <td> 
        <asp:Label ID="LblSymptomCodesDesc" runat="server" Text="Symptoms:"></asp:Label> 
       </td> 
       <td> 
        <asp:Label ID="LblSymptomCodes" runat="server" Text="xxxxxxxxxxxxxx"></asp:Label> 
       </td> 
      </tr> 
     </table> 
    </td> 
</tr> 
</table> 

正如你所看到的,与内表中的用户控件包装:

alt text

我知道我应该空隙表的布局,但我需要快速工作溶液;-)

EDIT:一个简化的样品,其也包:

<table> 
    <tr> 
     <td style="white-space:nowrap"> 
     <input type="button" value="b1" />&nbsp; 
     <input type="button" value="b2" />&nbsp; 
     <input type="button" value="b3" />&nbsp; 
     <table> 
      <tr> 
      <td style="white-space:nowrap"><input type="button" value="in table" /></td> 
      </tr> 
     </table> 
    </td> 
    </tr>      
</table> 

UPDATE
溶液 - 如提到的Jeroen - 是要使该表成为style="display: inline"的内联元素。接下来的问题是我在UserControl中使用了一个ASP.Net UpdatePanel,它通常以Div的形式呈现。所以导致我的表格换行的下一个块元素。我只需要设置UpdatePanel's RenderModeInline是什么导致它被渲染为跨度。

+0

也许你可以设置`style =“min-width:...”`?可能很难确切地知道要放入什么宽度,但它可能适用于您的情况。 – 2010-12-07 17:08:23

回答

3

如果CSS white-space不工作,你可以尝试添加nowrap="nowrap"td,就像你加入valign="top"

非常难看,但它应该工作。嗯,现在我明白了:表格是一个块级别的元素,所以它会一直到一个新的行,除非你使它成为一个内联元素或浮动它。

+0

谢谢,但这也行不通。无论是将其添加到外表的单元格还是将其添加到内部表格的单元格时。我在问题的最后添加了一个简化的问题示例。 – 2010-12-07 16:44:55

1
table tr td { 
    white-space: nowrap; 
} 
+0

这已经存在了...... – jeroen 2010-12-07 16:36:35

+0

谢谢,但是正如Jeroen所提到的那样,我已经将它添加到了单元格的样式中,但它不起作用。我在问题的最后添加了一个简化的问题示例。 – 2010-12-07 16:47:21

0

你已经把表格与自己对齐。它被设置为有限的像素数量,但你不想一旦超过就打包。你可以尝试:

white-space: nowrap; 
overflow: hidden;