יום רביעי, 11 בספטמבר 2013

יצירת טבלה באופן אוטומטי מהמסד נתונים (repeater)

נשתמש בדוגמא של ההרשאות מלפני שני פוסטים (רק בשינוי קטן, שיש תמונה של המשתמש), אם נרצה להציג את ההרשאות בטבלה, אבל באופן מתקדם יותר מטבלה.
אפשר להשתמש בפקד asp:table , שייצור טבלאות ממש עם התגיות tr td, אבל היום מפתחי אתרים מנסים להשתמש כמה שיותר עם div, כי זה קל יותר לעיצוב רספונטסיבי, וזמן הטעינה של תגיות הdiv יותר מהיר (הדפדפן לא מחכה שכל הטבלה תתרנדר),
לשם כך נשתמש בפקד asp:repater, באופן פשוט בCS נעשה חיבור למסד נתונים, נגדיר sql reader שיקרא את כל הנתונים מהמסד, ונחבר אותו לפקד בתצוגה.
 
protected void Page_Load(object sender, EventArgs e)
    {
SqlConnection con = new SqlConnection(Server=localhost;Database=MSSQL;Integrated Security=SSPI);

 
        SqlCommand Cmd = new SqlCommand("SELECT [PermissionImg] ,[PermissionName] FROM Permission ORDER BY PermissionLevel ASC", con);

 
        con.Open();
        SqlDataReader rd= Cmd.ExecuteReader();
        REPermission.DataSource = rd;
        REPermission.DataBind();

        con.Close();
        rd.Close();

 
}
 זהו, לא היה כואב, לא היה קשה.
בתצוגה עצמה נגדיר כמובן את הפקד, ונגדיר כיצד אנחנו רוצים להשתמש בנתונים PermissionImg, PermissionName

<asp:repeater ID="REPermission" runat="server">
<itemtemplate>
      <div class="imgPermission">
 
<img src='../img/user/<%# DataBinder.Eval(Container.DataItem,"PermissionImg") %>' alt="<%# DataBinder.Eval(Container.DataItem,"PermissionName") %> " class="smallImg">
   
<br />
 
 <span style="text-align:center;"> <%# DataBinder.Eval(Container.DataItem,"PermissionName") %></span>
      
      </div>
</itemtemplate>
                    </asep

אין תגובות:

הוסף רשומת תגובה