2016-12-29 3 views
0

Unitime.aspxVerwendung foreach-Schleife, um dynamisch HTML-Elemente basierend auf der Anzahl der Datensätze in der Datenbank

<asp:Content ID="Content2" ContentPlaceHolderID="cph2" Runat="Server"> 
    <div id="userPost" style="width:560px"> 
    <div id="firstPart"> 
     <div class="firstLeft"> 
      <asp:Image ID="imgProfile" runat="server" Height="50px"   ImageUrl="~/Images/ProfilePic/andre.jpg" Width="50px" /> 
     </div> 
     <div class="firstRight"> 
      <asp:ImageButton ID="imgbtnRemove" runat="server" Height="15px" Width="15px" ImageUrl="~/Images/Icons/wrong.png" /> 
     </div> 
     <div class="firstCenter"> 
      <asp:Label ID="lblUsername" runat="server" Text="Label"></asp:Label> 
      <br /><asp:Label ID="lblTime" runat="server" Text="Label"></asp:Label> 
     </div> 

    </div> 

    <div id="secondPart"> 
     <asp:Label ID="lblDescription" runat="server" Text="Label"></asp:Label> 
     </div> 

    <div id="thirdPart"> 
     <asp:Image ID="imgPost" runat="server" Height="357px" Width="476px" /> 
     <br /> 
    </div> 

    <div id="fourthPart"> 
     By:<asp:Label ID="lblSociety" runat="server" Text="Label"></asp:Label> 
    </div> 
</div> 
</asp:Content> 

unitime.aspx.cs

public partial class ActivityBoard : System.Web.UI.Page 
{ 
    WooooDataContext db = new WooooDataContext(); 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!Page.IsPostBack) 
     { 
      foreach(UniTime u in db.UniTimes) 
      { 
       lblSociety.Text = u.society; 

       var time = u.timeCreated; 
       lblTime.Text = time.ToString(); 
       lblTime.Text = timeAgo.relativeTime(u.timeCreated); 

       var studentid = u.studentID; 
       var un = from n in db.Students 
         where n.studentID == studentid 
         select new 
         { 
          n.username, 
          n.profilePic 
         }; 

       foreach (var x in un) 
       { 
        string xx = x.username.ToString(); 
        lblUsername.Text = xx; 
        string profile = x.profilePic.ToString(); 
        imgProfile.ImageUrl = string.Concat("Images/ProfilePic/", profile); 
       } 


       imgPost.ImageUrl = string.Concat("Images/UniTime/", u.photoURL); 
       lblDescription.Text = u.description; 
      } 
     } 
    } 

Ich baue so etwas wie ein Mock-up von Facebook zu generieren. So möchte ich relevante Daten aus der Datenbank abrufen und in diese HTML-Elemente einfügen, um sie anzuzeigen. Aber jetzt ist das Problem, das ich hier gegenüberstelle, dass ich nur einen der Aufzeichnungen anzeigen konnte. Was ich tun möchte, ist foreach-Schleife zu verwenden, um die Post der Benutzer basierend auf der Anzahl der Datensätze in meiner Datenbank zu loopen. Kann ich HTML-Code in die Foreach-Schleife der C# -Datei einfügen, um den gewünschten Effekt zu erzielen? Vielen Dank. enter image description here

+0

Blick in die [Listview] (https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listview.aspx) Kontrolle. –

Antwort

0

Es gibt einige Möglichkeiten, wie Sie dies tun können. Grundsätzlich müssen Sie Ihr "userPost" div in einen Repeater wie "List View" einbinden. "userPost" wird Ihr itemTemplate in der Listenansicht sein. Werfen Sie einen Blick auf diese enter link description here

Verwandte Themen