-1

我尝试在转发器中添加下拉列表,它在表格上方显示下拉列表,我想在 html 的状态列代码中显示

<div class="CSSTableGenerator">
    <table border="0" width="100%" cellpadding="0"
   cellspacing="0" id="results">
     <asp:Repeater ID="Repeater2" OnItemCommand="Repeater2_ItemCommand" runat="server">
       <HeaderTemplate>
        <tr>

        <td>
         DocumentID
         </td>
     <td>
       DocName
         </td>
       <td>
      File Name
         </td>
       <td>
      Document
        </td>
       <td>
       Department
      </td>
    <td>
     Status

   </td>

     </tr>
     </HeaderTemplate>
      <ItemTemplate>
     <tr>

     <td>
     <asp:Label Id="DocId" runat="server"></asp:Label>
    <%#DataBinder.Eval(Container.DataItem, "DocID")%>
    </td>
   <td>
      <asp:Label Id="DocName" runat="server"></asp:Label>
       <%#DataBinder.Eval(Container.DataItem, "DocName")%>
       </td>
     <td>
    <asp:Label Id="Uploadfile" runat="server"></asp:Label>
      <%#DataBinder.Eval(Container.DataItem, "Uploadfile")%>
      </td>
     <td>
    <asp:Label Id="DocType" runat="server"></asp:Label>
       <%#DataBinder.Eval(Container.DataItem, "DocType")%>
    </td>
   <td>
   <asp:Label Id="DepType" runat="server"></asp:Label>
    <%#DataBinder.Eval(Container.DataItem, "DepType")%>
    </td>
   <td>
   <asp:Label ID="Label1" runat="server"
 Text='<%# Eval("ApproveID") %>' Visible = "false" />
  <%#DataBinder.Eval(Container.DataItem, "ApproveID")%>
   </td>

  </tr>


   <asp:Label ID="lblCountry" runat="server"
  Text='<%# Eval("ApproveID") %>' Visible = "false" />

    <asp:DropDownList ID="DropDownList4" runat="server"

     EnableViewState="true" class="vpb_dropdown"

   DataTextField="ApproveType"

   DataValueField="ApproveID" AutoPostBack="true"

    OnSelectedIndexChanged="DropDownList4_SelectedIndexChanged">

   <asp:ListItem Text="Pending" selected="selected"
  Value="3"></asp:ListItem>

     <asp:ListItem Text="Approve"
     Value="1"></asp:ListItem>

     <asp:ListItem Text="Reject"
    Value="2"></asp:ListItem>
     </asp:DropDownList>
    </ItemTemplate>
      </asp:Repeater>
    </table>

     <asp:Label ID="apfi" runat="server" Text="Label"></asp:Label><br />
 <asp:Button ID="Button4" runat="server" Text="Button" onclick="Button4_Click" />

   </div>
  </div>
    </center>
  </div>

请看下面的图片我是如何解决这个问题的……哪里出错了?

但它向我展示了这张 图片

4

1 回答 1

1

错误是您的DropDownList(and a Label) 在tableandtr元素之间,这是无效的 HTML。结果客户端将是这样的:

<table>
    <tr>
        <td>...</td>
    </tr>
    <span>...</span>
    <select>
        <option>...</option>
    </select>
</table>

无法正确呈现它,因为span并且select不是表格行元素。

至于如何解决这个问题,这完全取决于您希望这些元素如何显示。您尝试的不是有意义的布局,那么您要寻找的布局是什么?

例如,如果您希望这些元素显示在行尾的表格单元格中,则需要为它们添加一个单元格:

<table>
    <tr>
        <td>...</td>
        <td>
            <span>...</span>
            <select>
                <option>...</option>
            </select>
        </td>
    </tr>
</table>

如果您希望它们显示在表格之外(可能在表格的右侧?),那么它们需要在表格之外,您可以使用 CSS 来定位它们。(不过,对齐会很棘手。如果它们在逻辑上是表格的一部分,并且似乎被认为它们在其转发器中,那么它们应该是表格本身的一部分。)

表结构必须像表一样结构化。

(注意:任何时候你遇到这样的渲染问题,你应该做的第一件事就是验证你的标记。这将明确哪些部分是无效的,并引用定义这些部分的 HTML 规范。)

于 2013-11-08T17:35:36.180 回答