2010-11-25 4 views
0

두 개의 중첩 된 표가있는 표가 두 개의 중계기를 표시합니다. 내 중계기는 각각 집과 사무실 주소를 표시합니다. 문제는 하나의 리피터에 새 레코드를 추가 할 때마다 다른 리피터 테이블의 디스플레이가 엉망이된다는 것입니다. rpt1에 레코드를 추가하면 rpt1의 테이블이 위로 이동하고 rpt2의 테이블이 다운됩니다. 헤더가 한 줄로 표시되지 않습니다. 레코드가 추가되거나 삭제 될 때 위아래로 이동합니다. 내가 원하는 것은이 헤더가 수정되어 새로운 레코드를 추가하거나 레코드를 삭제하면 두 repeater의 제목이 같은 줄에 표시됩니다 ... 어떻게 수정합니까? 혼돈하지 않기를 바랍니다.표 표시 문제

<table width="100%" cellpadding="0" cellspacing="0"> 
     <tr> 
      <td width="50%"> 
       <asp:Panel ID="pnlAddAddress" runat="server"> 
       <asp:Repeater ID="rpt1" OnItemCommand="rpt1_ItemCommand" runat="server" OnItemDataBound="rpt1_OnItemDataBound"> 

       <HeaderTemplate>        
        <table width="99%" border="0" cellpadding="0" cellspacing="0"> 
        <tr> 
       <td colspan="5" class="linegrey"> 
         </td> 
        </tr> 
        <tr class="lgrey"> 
         <td> 
          Address1 
         </td> 

         <td> 
          City 
         </td> 
         <td> 
          State 
         </td> 

         <td> 
         IsDefault 
         </td> 
         <td> 
         Actions 
         </td> 
        </tr> 
        <tr> 
        <td colspan="5" class="dots"> 
        </tr> 
      </HeaderTemplate> 
      <ItemTemplate> 
        <tr> 
        <td> 

         <asp:LinkButton ID="lnkAddressB" runat="server" Text='<%# Eval("Address1")%>' CommandName="DisplayAddressB" CommandArgument='<%#Eval("AddID") %>' CausesValidation=false></asp:LinkButton> 

        </td> 

        <td> 
         <%# Eval("City")%> 

        </td> 
        <td> 
         <%# Eval("State")%> 
        </td> 

        <td> 

        <%-- Visible='<%# Eval("IsDefault")%>'--%> 

         <asp:LinkButton ID="lnkDefaultB" Text="Set as Default" CommandName="SetDefaultB" runat="server" CommandArgument='<%# Eval("AddID") + "," + Eval("IsB") %>' 
         CausesValidation="false" Visible='<%# Eval("IsDefault")%>'></asp:LinkButton> 
         <asp:Label ID="labelDefaultB" Text="Yes" runat="server" Visible='<%# Eval("IsDefault")%>'></asp:Label> 

        </td> 
        <td> 
        <asp:ImageButton ID="lnkAdd" CommandArgument='<%#Eval("AddID") %>' 
         CausesValidation="false" CommandName="Edit" runat="server" ImageUrl="~/images/Edit.gif" Width="14" Height="14" ToolTip="Edit"></asp:ImageButton> 
         &nbsp; 
         <asp:ImageButton ID="lnkDel" Text="Delete" CommandArgument='<%#Eval("AddID") %>' 
         CausesValidation="false" CommandName="Delete" runat="server" ImageUrl="~/images/Delete.gif" Width="14" Height="14" ToolTip="Delete"></asp:ImageButton> 
        </td> 
        </tr> 
       </ItemTemplate> 
       <FooterTemplate> 
       </table> 
       </FooterTemplate> 
       </asp:Repeater> 
      </asp:Panel> 
      </td> 
      <td> 
      <asp:Panel ID="pnlSping" runat="server"> 
       <asp:Repeater ID="rpt12" OnItemCommand="rpt12_ItemCommand" runat="server" OnItemDataBound="rptSpping_OnItemDataBound"> 
        <HeaderTemplate> 
         <table width="100%" border="0" cellpadding="0" cellspacing="0"> 
          <tr> 
           <td colspan="5" class="linegrey"> 
           </td> 
           </tr> 
           <tr class="lgrey"> 
           <td> 
            Address1 
           </td> 
           <td> 
            City 
            </td> 
            <td> 
            State 
            </td> 
            <td> 
            IsDefault 
            </td> 
            <td> 
            Actions 
            </td> 
           </tr> 
           <tr> 
            <td colspan="5" class="dots"> 
            </tr> 
         </HeaderTemplate> 
         <ItemTemplate> 
            <tr> 
            <td> 
             <asp:LinkButton ID="lnkAddressS" runat="server" Text='<%# Eval("Address1")%>' CommandArgument='<%#Eval("AddID") %>' CommandName="DisplayAddressS" CausesValidation="false"></asp:LinkButton> 
            </td> 

            <td> 
            <%# Eval("City")%> 
            </td> 
            <td> 
             <%# Eval("State")%> 
             </td> 
             <td> 
             <asp:LinkButton ID="lnkDefaultS" Text="Set as Default" CommandName="SetDefaultS" runat="server" Visible=true CommandArgument='<%# Eval("AddID") + "," + Eval("IsS") %>' 
             CausesValidation="false"></asp:LinkButton> 
             <asp:Label ID="labelDefaultS" Text="Yes" runat="server" Visible=true></asp:Label> 
             </td> 
             <td> 
             <asp:ImageButton ID="lnkAdd" Text="Edit" CommandArgument='<%#Eval("AddID") %>' 
             CausesValidation="false" CommandName="Edit" runat="server" ImageUrl="~/images/Edit.gif" Width="14" Height="14" ToolTip="Edit"></asp:ImageButton> 
             &nbsp; 
             <asp:ImageButton ID="lnkDel" Text="Delete" CommandArgument='<%#Eval("AddID") %>' 
             CausesValidation="false" CommandName="Delete" runat="server" ImageUrl="~/images/Delete.gif" Width="14" Height="14" ToolTip="Delete"></asp:ImageButton> 
             </td> 
             </tr> 
          </ItemTemplate> 
           <FooterTemplate> 
           </table> 
           </FooterTemplate> 
          </asp:Repeater> 
         </asp:Panel> 
        </td> 
       </tr> 
      </table> 

답변

1

사용 CSS 속성은 valign 같은이 <td width="50%" valign="top">처럼 상단으로 그 값을 설정합니다.

<table width="100%" cellpadding="0" cellspacing="0"> 
      <tr> 
       <td width="50%" valign="top"> 
        <asp:Panel ID="pnlAddAddress" runat="server"> 
         ...... 
        </asp:Panel> 
       </td> 
       <td valign="top"> 
        <asp:Panel ID="pnlSping" runat="server"> 
         ...... 
        </asp:Panel> 
       </td> 
      </tr> 
     </table> 
+0

모든 tds에 대해이 valign 속성을 설정해야합니까? – Serenity

+0

이봐, 고칠 수있어 ... 고마워! : D – Serenity

+0

좋았지 만 Dave와 마찬가지로 전체 테이블을 반복하는 대신 단일 행을 반복하는 것이 좋습니다. – Waqas

1

헤더의 경우 <th> 요소를 사용하면이 값이 표의 맨 위에 유지됩니다.

리피터 컨트롤 바깥에있는 <table> 태그를 넣으십시오. 리피터가 헤더에 대해 하나의 행과 헤더 만 렌더링하는지 확인하십시오.

<div> 태그로 두 테이블을 래핑하는 것을 고려하지 않는 한 중첩 테이블로 태그를 배치하면 실제로 이상적으로 작동하지 않습니다.