【问题标题】:how to make Responsive DataList asp.net如何制作响应式数据列表 asp.net
【发布时间】:2014-05-23 10:45:57
【问题描述】:

我的页面中有一个 Asp.net DataList 控件。它目前将重复列设置为 4,这将在每行中给我 4 列。但我想让这个响应并将值设置为 1 以获得较小的屏幕尺寸。下面是我的asp.net控件:

<asp:DataList runat="server" RepeatDirection="Horizontal" RepeatColumns="4" ID="dd" class="vex-res">

我怎样才能做到这一点?

【问题讨论】:

  • 到目前为止你有什么尝试?你应该发布代码。您发布的只是一个 ASP.NET 用户控件声明

标签: css asp.net datalist


【解决方案1】:

你可以用asp字面量来做,把代码写在字符串里,加到字面上, 假设您想动态显示项目 你可以这样做

添加html

<div class="any_css_class">
     <div class="any_css_class2">
         <asp:Literal ID="Literal1" runat="server"></asp:Literal>
    </div>
</div>

在你的cs文件中

string htmlcode = ""; //code you want in your html
foreach (FetchedDetails fd in yourListOfItems)
{
    htmlcode += "<div class='content content-1' onclick=\"dosomething('" + fd.itemId + "')\"> " +
                    "<div class='fab fa-any_icon'></div> " +
                    "<h2>" + fd.anyAttribute + "</h2> ";
}

Literal1.Text = htmlcode; //add code to literal

这样就可以了。它将是响应式的,但您必须正确定义您的 css :)

【讨论】:

    【解决方案2】:
        <asp:DataList ID="uxPosts" runat="server"  OnItemDataBound="uxPosts_ItemDataBound1" cssClass="row" RepeatLayout="Flow" RepeatDirection="Horizontal">
            <ItemTemplate>
    
                <a id="uxLink" runat="server" class="txt_link">
                    <div class="col-xs-4 col-sm-4 col-md-4  " style="text-align:center;" >
                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("Descripcion","{0:d}") %>'></asp:Label>  
                    </div>
    
                    <div class="col-xs-4 col-sm-4 col-md-4  " style="text-align:center;" >
                        <asp:Label ID="Label1" runat="server"  Text='<%# Eval("Descripcion","{0:d}") %>'></asp:Label>  
                    </div>
    
                    <div class="col-xs-4 col-sm-4 col-md-4  " style="text-align:center;" >
                        <asp:Label ID="Label4" runat="server" Text='<%# Eval("Descripcion","{0:d}") %>'></asp:Label>  
                    </div>
                </a>
    
            </ItemTemplate>
    
        </asp:DataList>
    

    【讨论】:

      【解决方案3】:
      <asp:DataList ID="DataList1" runat="server"  OnItemDataBound="uxPosts_ItemDataBound1" cssClass="row" RepeatLayout="Flow" RepeatDirection="Horizontal">
              <ItemTemplate>
                  <div class="col-sm-3 col-md-3 col-lg-3"><%# Eval("Name") %></div>
                  <div class="col-sm-3 col-md-3 col-lg-3"><%# Eval("Email") %></div>
                  <div class="col-sm-3 col-md-3 col-lg-3"><%# Eval("Address") %></div>
                  <div class="col-sm-3 col-md-3 col-lg-3"><%# Eval("Phone") %></div>
              </ItemTemplate>
          </asp:DataList>
      

      【讨论】:

      • 请使用英文。将您对答案的解释实际放入答案中通常是一种很好的形式。
      【解决方案4】:
        <asp:DataList ID="uxPosts" runat="server"  OnItemDataBound="uxPosts_ItemDataBound1" cssClass="row" RepeatLayout="Flow" RepeatDirection="Horizontal">
              <ItemTemplate>
                  <a id="uxLink" runat="server" class="txt_link">
                      <div class=" col-xs-6 col-sm-4 col-md-3 col-lg-3  " style="text-align:center;" >
                          <div class="pnlborde">
                              <div class="encabezadofondo">
                                  <asp:Label ID="Label2" runat="server" Height="38px" width="150px" Text='<%# Eval("Descripcion","{0:d}") %>'></asp:Label>  
                              </div>
      
                              <br />
                              <asp:Image ID="uxImage" runat="server" width="65%"  Height="90%" align="center" />
                              <br /><br />
                          </div>
                          <br />
                      </div>
                  </a>
              </ItemTemplate>
          </asp:DataList>
      

      【讨论】:

        【解决方案5】:

        这项工作我的家:

        <asp:DataList ID="dlCustomers" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow" CssClass="row">
            <ItemTemplate>
           <%-- <div class="row">--%>
            <div class="col-sm-4"><!--THUMBNAIL#2-->
            <div class="panel-body">
              <span class="label label-warning"><%# Eval("status")%></span>
              <div class="thumbnail label-success">
                <asp:Image ID="Image1" runat="server" ImageUrl='<%# "~/" +Eval("image1").ToString().Trim() %>' Width="150px" Height="150px" />
                <div class="caption"><h4>Rp.<small> <%# Eval("harga")%></small></h4>
                  <strong><%# Eval("judul") %></strong>
                  <p>
                  <small>LT:<strong>  <%# Eval("luastanah")%> m2</strong> </small> <small> LB : <strong>  <%# Eval("luasbangunan")%> m2</strong> </small> 
                  <small>Setifikat : <strong><%# Eval("sertifikasi")%></strong> </small> <br />
                 <small> Kamar : <strong><%# Eval("kamartidur")%></strong> </small><br />
                 <small> Kamar Mandi : <strong><%# Eval("kamarmandi")%></strong> </small>
                  </p>
                  <a href="#" class="btn btn-success">Lihat Details</a>
                </div>
              </div>
             </div>
             </div> 
              <%--</div>--%>
              </ItemTemplate>
        </asp:DataList>
        

        响应式使用引导程序 3.3.6 ..

        【讨论】:

        • OP 2 年前就有答案了,为什么现在才发这个?
        • 太棒了,帮助很大
        【解决方案6】:

        您也可以尝试设置RepeatLayout="Flow"。这将导致您的数据列表呈现为一系列 &lt;div&gt; 元素,这些元素的响应速度会更快。

        【讨论】:

          【解决方案7】:

          有点晚了,但我发现一个 asp:repeater 效果很好,不需要额外的 CSS 来让布局水平重复。

              <div class="container">
                  <div class="row">
                      <asp:Repeater ID="myRepeater" runat="server" DataSourceID="myDataSourceID">
                          <ItemTemplate>
                              <div class="col-sm-4">
                                  <%# Eval("itemID")%><br />
                                  <%# Eval("itmName")%>
                              </div>
                          </ItemTemplate>
                      </asp:Repeater>
                  </div>
              </div>
          

          我意识到这将导致一行中的总列数加起来超过 12,但因为这只会换行到下面的行,这并不重要。

          参考:https://stackoverflow.com/questions/23502342/bootstrap-3-grid-does-it-really-matter-how-many-columns-are-in-a-row

          【讨论】:

            【解决方案8】:

            您不能使 DataList 具有响应性,因为它呈现为 Table。

            相反,您需要将ListView 与引导程序(或其他一些响应式框架)一起使用。

            <asp:ListView ID="ListView1" runat="server" ...>
                ...
                <ItemTemplate>
                    <div class="row">
                        <div class="col-md-4"><%# Eval("Name") %></div>
                        <div class="col-md-4"><%# Eval("Email") %></div>
                        <div class="col-md-4"><%# Eval("Address") %></div>
                    </div>
                </ItemTemplate>
            </asp:ListView>
            

            【讨论】:

            • 你如何让这个像数据列表一样水平重复?
            • @SimonTindall 您只需要使用 CSS 设置样式即可。如果您需要更多信息,能否请您创建一个新问题并发布您的代码?
            猜你喜欢
            • 2021-01-31
            • 1970-01-01
            • 2019-08-14
            • 2013-08-28
            • 2015-04-23
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多