Как предотвратить рендеринг asp: FormView в виде таблицы? - PullRequest
19 голосов
/ 09 марта 2010

У меня есть asp: FormView с ItemTemplate. Я хотел бы создать контент в 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>

Когда я запускаю приложение, создается следующий 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>

На самом деле стол несколько тревожит. Я не знаю, какова цель создания ItemTemplate для фристайла контента, но затем я помещаю его в таблицу.

Можно ли отключить или обойти это поведение? (Я не смог найти флаг в свойствах FormView.)

Ответы [ 3 ]

57 голосов
/ 25 августа 2010

Вы можете установить RenderOuterTable="false" в FormView

10 голосов
/ 11 декабря 2012

Используйте следующий код.

RenderOuterTable="false"

Поместите его в FormView . Работает в .NET 4.0.

3 голосов
/ 09 марта 2010

использовать повторитель (это легкая версия и полностью настраиваемый)

  <asp:Repeater runat=server ID="r1">
<HeaderTemplate><div></HeaderTemplate>
<ItemTemplate>Zzz</ItemTemplate>
<FooterTemplate></div></FooterTemplate>
</asp:Repeater>  

или

лучше использовать управление адаптеры :

...