asp.net Gridview, 1 запись занимает две строки - PullRequest
6 голосов
/ 28 октября 2009

У меня проблемы с созданием Gridview, который может занимать 2 строки для каждой записи.
Я пытался использовать templateField с headerTemplate и itemTemplates в качестве отдельных таблиц, но не могу их правильно отформатировать.

Кто-нибудь знает более простое решение этой проблемы?

Ответы [ 2 ]

6 голосов
/ 29 октября 2009

Да, не используйте GridView. GridView используется для отображения табличных данных. То, что вы хотите, не соответствует этим критериям. Вы можете использовать ретранслятор, но я предпочитаю новый в 3.5 ListView

    <asp:ListView ID="ListView1" runat="server"  >
  <ItemTemplate>
    <tr>
      <td>
        <%# Eval("Something") %>
      </td>        
    </tr>
    <tr>
        <td>
        <%# Eval("SomethingElse") %>
        </td>
    </tr>
  </ItemTemplate>

  <EmptyDataTemplate>
    <div>
          No data was returned.</td>
      </div>        
  </EmptyDataTemplate> 
  <LayoutTemplate>          
            <asp:PlaceHolder ID="itemPlaceholder" runat="server">  
  </LayoutTemplate> 
</asp:ListView>
4 голосов
/ 28 октября 2009

Рассматривали ли вы использовать Повторитель вместо GridView? Повторитель, вероятно, самый простой способ иметь 2 строки на запись, вы получаете больший контроль над создаваемой табличной разметкой, например

<asp:Repeater runat="server" ID="Repeater1" >
<HeaderTemplate>
    <table>
        <tr>
            <th>Field 1</th>
        </tr>
        <tr>
            <th>Field 2</th>
        </tr>
</HeaderTemplate>
<ItemTemplate>
    <tr>
        <td><%# DataBinder.Eval(Container.DataItem, "field1") %></td>
    </tr>
    <tr>
        <td><%# DataBinder.Eval(Container.DataItem, "field2") %></td>
    </tr>
</ItemTemplate>
<FooterTemplate>
    </table>
</FooterTemplate>
</asp:Repeater>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...