【问题标题】:How to make pyramid shape asp.net datalist?如何制作金字塔形状的 asp.net 数据列表?
【发布时间】:2018-03-06 20:43:55
【问题描述】:

这是我的代码隐藏。

 public void pyramidlist()
    {
        SqlConnection path= new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True");
        path.Open();
        SqlDataAdapter da = new SqlDataAdapter("Select * from Players", yol);
        DataTable dt = new DataTable();
        da.Fill(dt);



        List<Players> playerList= new List<Players>();
        playerList= (from DataRow dr in dt.Rows
                         select new Players()
                         {
                             Name= (dr["Name"].ToString()),
                             Order= int.Parse(dr["Order"].ToString()),
                             ID = int.Parse(dr["ID"].ToString())

                         }).ToList();

        playerList= playerList.OrderBy(x => x.ID).ToList();


        datalist1.DataSource = playerList;
        datalist1.DataBind();

public class Players
    {
        public string Name{ get; set; }
        public int Order{ get; set; }
        public int ID { get; set; }
    }

我想设置 RepeatColums 属性 1.2.3.4.5.6.7.8.9.10。最后 datalist 将显示为三角形或金字塔。 你可以告诉我不同​​的方式。没问题。我想改变RepeatColums。 First Record 第一行,第二行第二和第三条记录,第三行 4-5-6 条记录。

Default.aspx 代码...

<asp:DataList runat="server" ID="datalist1" RepeatLayout="Flow" RepeatColumns="2"> <ItemTemplate>

            <asp:HyperLink ID="HyperLink1" CssClass="link" NavigateUrl='PlayerDetails.aspx?id=<%# Eval("Id") %>' runat="server"> <%# Eval("Sira") %>. <%# Eval("AdSoyad") %></asp:HyperLink>

          </ItemTemplate> </asp:DataList>

【问题讨论】:

    标签: c# asp.net database linq datalist


    【解决方案1】:

    如果嵌套两个datalist元素,可以使用外循环来控制内循环的长度

    所以,后面的代码类似,但包含一个定义重复长度的容器列表

    protected void Page_Load(object sender, EventArgs e)
        {
            SqlConnection path = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True");
            path.Open();
            SqlDataAdapter da = new SqlDataAdapter("Select * from Players", path);
            DataTable dt = new DataTable();
            da.Fill(dt);
    
    
            // fill the players list from the database
            List<Players> playerList = new List<Players>();
            playerList = (from DataRow dr in dt.Rows
                          select new Players()
                          {
                              Name = (dr["Name"].ToString()),
                              Order = int.Parse(dr["Order"].ToString()),
                              ID = int.Parse(dr["ID"].ToString())
    
                          }).ToList();
    
            playerList = playerList.OrderBy(x => x.ID).ToList();
    
            // consume the players list in increasing increments
            List<Tier> tierList = new List<Tier>();
            for(var tierLength = 1; playerList.Count > 0; tierLength++)
            {
                var tier = new Tier();
                tier.Players = new List<Players>();
                tier.TierLength = tierLength;
                for(var playerCount = 0; playerCount < tierLength && playerList.Count > 0; playerCount++)
                {
                    tier.Players.Add(playerList[0]);
                    playerList.RemoveAt(0);
                }
                tierList.Add(tier);
            }
    
            // bind the tierList to the outer datalist element
            // the inner datalist element will be a child
            DataList0.DataSource = tierList;
            DataList0.DataBind();
        }
    }
    public class Players
    {
        public string Name { get; set; }
        public int Order { get; set; }
        public int ID { get; set; }
    }
    public class Tier
    {
        public List<Players> Players { get; set; }
        public int TierLength { get; set; }
    }
    

    ASPX 代码如下所示

    <asp:DataList ID="DataList0" runat="server">
        <ItemTemplate>
            <asp:DataList ID="DataList1" runat="server" DataSource='<%# Eval("Players") %>' RepeatLayout="Flow" RepeatColumns='<%# Eval ("TierLength") %>'>
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink1" CssClass="link" NavigateUrl='PlayerDetails.aspx?id=<%# Eval("ID") %>' runat="server"><%# Eval("Name") %></asp:HyperLink>
                </ItemTemplate>
            </asp:DataList>
        </ItemTemplate>
    </asp:DataList>
    

    【讨论】:

      猜你喜欢
      • 2023-01-25
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多