【问题标题】:what is the equivalent of asp:datalist in asp.net-mvcasp.net-mvc 中的 asp:datalist 等价物是什么
【发布时间】:2009-08-10 05:19:24
【问题描述】:

我正在将一个站点从一个 asp.net 站点迁移到 asp.net,其中一个页面的数据列表如下:

 <asp:DataList ID="MyDataList" runat="server" BackColor="#EEEEEE" CellPadding="10"
    ItemStyle-HorizontalAlign="Center" GridLines="Both" Width="750" RepeatDirection="Horizontal"
    RepeatColumns="4" RepeatLayout="Table" ItemStyle-VerticalAlign="Top">
    <ItemTemplate>
        <table>
            <tr align="center">
                <td valign="top">
                    <table>
                        <tr>
                            <td width="30%">
                            </td>
                            <td>
                                <asp:HyperLink ID="HyperLink1" runat="server">
                                <asp:Image style="cursor:pointer" CssClass="instant ishadow50" ID="lnkEnlarge" runat="server"></asp:Image></asp:HyperLink>
                            </td>
                            <td width="30%">
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
            <tr align="center">
                <td>
                    <asp:Label CssClass="Comments" ID="lblComment" runat="server"></asp:Label><br>
                </td>
            </tr>
        </table>
    </ItemTemplate>
</asp:DataList>

asp.net-mvc 中的等价物是什么。我将如何进行迁移?

【问题讨论】:

    标签: asp.net asp.net-mvc datalist


    【解决方案1】:

    ASP.NET MVC 没有服务器控件。 您可以在模型上使用简单的 foreach 循环(您也可以使用局部视图)。

    不同的选择是写一个Html helper。

    【讨论】:

      【解决方案2】:
      @{
              //repeatdirection = Horizontal, RepeatColumns = 4
              const int NumberOfColumns = 4; 
              int skip = 0;
              var items = Model.DataStuff.Skip(skip).Take(NumberOfColumns);
              while(items.Count() > 0) {
                  <tr>
                      @foreach (var item in items) {
                          <td>
                              @Html.ActionLink(item.Name...etc)
                          </td>
                      }
                  </tr>
                  skip += NumberOfColumns;
                  items = Model.Skip(skip).Take(NumberOfColumns);
              }
          }
      

      【讨论】:

        【解决方案3】:

        正如 CD 所指出的,基本的方法是只编写 Html。把它带回旧学校。如果您更喜欢采用更抽象的方法,可以使用一些更高级的助手。 MvcContrib grid 是解决此类问题的一个不错的选择——它通常可以让您在使用 MVC 风格的同时避免直接生成 html。

        注意:链接指向 MvcContrib 网格的一个版本,该版本晚于编写本文时 CodePlex 上的公开发布,您需要获取源并构建自己的源以利用它。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-11-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-03-26
          • 2017-07-24
          • 2018-08-30
          相关资源
          最近更新 更多