如何防止asp:FormView从表中呈现?

Sla*_*uma 19 asp.net formview

我有一个带有ItemTemplate的asp:FormView.我想在FormView中使用一些div元素设计内容:

<asp:FormView ID="MyFormView" runat="server" >
    <ItemTemplate>
        <div class="block1">
            Stuff...
        </div>
        <div class="block2">
            Stuff...
        </div>

        ...

        <div class="blockN">
            Stuff...
        </div>
    </ItemTemplate>
</asp:FormView>
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序时,会创建以下HTML:

<table id="MyFormView" style="border-collapse: collapse;" border="0" cellspacing="0">
    <tbody>
        <tr>
            <td colspan="2">
                <div class="block1">
                    Stuff...
                </div>
                <div class="block2">
                    Stuff...
                </div>

                ...

                <div class="blockN">
                    Stuff...
                </div>
            </td>
        </tr>
    </tbody>
</table>
Run Code Online (Sandbox Code Playgroud)

实际上桌子有点令人不安.我不知道让ItemTemplate自由设置内容然后将其包装到表中的目的是什么.

是否可以禁用或解决此问题?(我在FormView属性中找不到标志.)

小智 57

您可以RenderOuterTable="false"在FormView上设置

  • fyi,这是ASP.NET 4.0 http://www.4guysfromrolla.com/articles/032410-1.aspx中的新功能 (4认同)
  • 在FormView控件上禁用RenderOuterTable时,不能使用样式属性"宽度" (3认同)

小智 10

使用以下代码.

RenderOuterTable="false"
Run Code Online (Sandbox Code Playgroud)

把它放在FormView上.它适用于.NET 4.0.


gar*_*rik 3

使用中继器(它是轻型版本并且完全可定制)

  <asp:Repeater runat=server ID="r1">
<HeaderTemplate><div></HeaderTemplate>
<ItemTemplate>Zzz</ItemTemplate>
<FooterTemplate></div></FooterTemplate>
</asp:Repeater>  
Run Code Online (Sandbox Code Playgroud)

或者

更好地使用控制适配器

  • 这并不能回答问题。可以告诉 FormView 停止呈现为“表”(在 ASP.NET 4.0 中) (2认同)