17-04-13, 09:26 PM
سوف نخصص صفحة الخطأ 404 في تطبيقنا:
نضيف صفحة جديدة للمشروع اسمها 404.aspx ترث من الـ Site.Master.
ثم نكتب الكود التالي داخل ملف Web.config، بين:[HTML]<system.web>
</system.web>
[/HTML]في أي مكان:[HTML]<customErrors>
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
[/HTML]في صفحة الـ Default.aspx نضيف جدول من صف واحد وعمودين، في الحقل الأول نضع Label اسمه parts، وفي الحقل الثاني نضع Label اسمه newprog، نجعل النص فارغ في كلا الـ Label، ثم نذهب للكود لنكتب:
في صفحة الـ Part نضع Label فقط، خالي من النص واسمه: viewer، ثم نكتب الكود التالي داخل الصفحة:
في صفحة الـ Program:
الكود الخاص بالصفحة:
خارج أي إجراء:
في حدث تحميل الصفحة:
في حدث ضغط الـ LinkButton:
نضيف صفحة جديدة للمشروع اسمها 404.aspx ترث من الـ Site.Master.
ثم نكتب الكود التالي داخل ملف Web.config، بين:[HTML]<system.web>
</system.web>
[/HTML]في أي مكان:[HTML]<customErrors>
<error statusCode="404" redirect="~/404.aspx"/>
</customErrors>
[/HTML]في صفحة الـ Default.aspx نضيف جدول من صف واحد وعمودين، في الحقل الأول نضع Label اسمه parts، وفي الحقل الثاني نضع Label اسمه newprog، نجعل النص فارغ في كلا الـ Label، ثم نذهب للكود لنكتب:
:#C
كود :
[align=left]private DB.ProgramsDB db = new DB.ProgramsDB();
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
try
{
// الأقسام
var partdata = from d in db.Parts
where d.MainPart == 0
select d;
parts.Text += "<b style=\"font-size: 14pt;\">تصنيفات البرامج</b><br /><table class=\"pt\">";
int i = 1;
foreach (var d in partdata)
{
if (i == 1) { parts.Text += "<tr>"; ++i; }
parts.Text += string.Format("<td class=\"ptd\"><a href=\"Part/{0}\"><img src=\"Images/part.png\" /><br />{1}</a><br />{2}</td>", d.ID, d.PartName, d.Description);
if (i > 2) { parts.Text += "</tr>"; i = 1; }
}
if (!parts.Text.EndsWith("</tr>")) parts.Text += "</tr>";
parts.Text += "</table>";
// ------------------------------
// آخر خمس برامج مضافة
var progdata = (from d in db.Programs
select d).Take(5).OrderByDescending(id => id.ID);
newprog.Text = "<b style=\"font-size: 14pt;\">البرامج المضافة حديثاً</b><br /><br />";
foreach (var d in progdata)
newprog.Text += string.Format("<a href=\"Program/{0}\">{1}</a><br />", d.ID, d.ProgName);
}
catch { }
}
[/align]:VB
كود :
[align=left]Private db As New DB.ProgramsDB()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If IsPostBack Then Exit Sub
Try
' الأقسام
Dim partdata = From d In db.Parts
Where d.MainPart = 0
Select d
parts.Text &= "<b style=""font-size: 14pt;"">تصنيفات البرامج</b><br /><table class=""pt"">"
Dim i As Integer = 1
For Each d In partdata
If i = 1 Then
parts.Text &= "<tr>"
i += 1
End If
parts.Text += String.Format("<td class=""ptd""><a href=""Part/{0}""><img src=""Images/part.png"" /><br />{1}</a><br />{2}</td>", d.ID, d.PartName, d.Description)
If i > 2 Then
parts.Text &= "</tr>"
i = 1
End If
Next d
If Not parts.Text.EndsWith("</tr>") Then
parts.Text &= "</tr>"
End If
parts.Text &= "</table>"
' ------------------------------
' آخر خمس برامج مضافة
Dim progdata = (
From d In db.Programs
select d).Take(5).OrderByDescending(Function(id) id.ID)
newprog.Text = "<b style=""font-size: 14pt;"">البرامج المضافة حديثاً</b><br /><br />"
For Each d In progdata
newprog.Text += String.Format("<a href=""Program/{0}"">{1}</a><br />", d.ID, d.ProgName)
Next d
Catch
End Try
End Sub
[/align]في صفحة الـ Part نضع Label فقط، خالي من النص واسمه: viewer، ثم نكتب الكود التالي داخل الصفحة:
:#C
كود :
[align=left]private DB.ProgramsDB db = new DB.ProgramsDB();
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack) return;
try
{
// الأقسام الفرعية
var subpart = from d in db.Parts
where d.MainPart == int.Parse(RouteData.Values["id"].ToString())
select d;
if (subpart.Count() > 0)
{
viewer.Text = "<b style=\"font-size: 14pt;\">اقسام فرعية داخل هذا القسم</b><br /><table class=\"pt\">";
int i = 1;
foreach (var d in subpart)
{
if (i == 1) { viewer.Text += "<tr>"; ++i; }
viewer.Text += string.Format("<td class=\"ptd\"><a href=\"../Part/{0}\"><img src=\"../Images/part.png\" /><br />{1}</a><br />{2}</td>", d.ID, d.PartName, d.Description);
if (i > 2) { viewer.Text += "</tr>"; i = 1; }
}
if (!viewer.Text.EndsWith("</tr>")) viewer.Text += "</tr>";
viewer.Text += "</table><br /><br />";
}
// ------------------------------
// البرامج المدرجة في هذا القسم
var prog = from d in db.Programs
where d.PID == int.Parse(RouteData.Values["id"].ToString())
select d;
if (prog.Count() > 0)
{
viewer.Text += "<b style=\"font-size: 14pt;\">البرامج داخل هذا القسم</b><br /><table width=\"100%\" border=\"3\">";
viewer.Text += "<tr><td align=\"center\"><b>اسم البرنامج</b><td align=\"center\"><b>اسم المبرمج</b></td></td>";
foreach (var d in prog)
viewer.Text += string.Format("<tr><td><a href=\"../Program/{0}\">{1}</a></td><td>{2}</td></tr>", d.ID, d.ProgName, d.PName);
viewer.Text += "</table>";
}
}
catch { }
}[/align]:VB
كود :
[align=left]Private db As New DB.ProgramsDB()
Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If IsPostBack Then Exit Sub
Try
' الأقسام الفرعية
Dim subpart = From d In db.Parts
Where d.MainPart = Integer.Parse(RouteData.Values("id").ToString())
Select d
If subpart.Count() > 0 Then
viewer.Text = "<b style=""font-size: 14pt;"">اقسام فرعية داخل هذا القسم</b><br /><table class=""pt"">"
Dim i As Integer = 1
For Each d In subpart
If i = 1 Then
viewer.Text &= "<tr>"
i += 1
End If
viewer.Text += String.Format("<td class=""ptd""><a href=""../Part/{0}""><img src=""../Images/part.png"" /><br />{1}</a><br />{2}</td>", d.ID, d.PartName, d.Description)
If i > 2 Then
viewer.Text &= "</tr>"
i = 1
End If
Next d
If Not viewer.Text.EndsWith("</tr>") Then
viewer.Text &= "</tr>"
End If
viewer.Text &= "</table><br /><br />"
End If
' ------------------------------
' البرامج المدرجة في هذا القسم
Dim prog = From d In db.Programs
Where d.PID = Integer.Parse(RouteData.Values("id").ToString())
Select d
If prog.Count() > 0 Then
viewer.Text &= "<b style=""font-size: 14pt;"">البرامج داخل هذا القسم</b><br /><table width=""100%"" border=""3"">"
viewer.Text &= "<tr><td align=""center""><b>اسم البرنامج</b><td align=""center""><b>اسم المبرمج</b></td></td>"
For Each d In prog
viewer.Text += String.Format("<tr><td><a href=""../Program/{0}"">{1}</a></td><td>{2}</td></tr>", d.ID, d.ProgName, d.PName)
Next d
viewer.Text &= "</table>"
End If
Catch
End Try
End Sub[/align]في صفحة الـ Program:
الكود الخاص بالصفحة:
خارج أي إجراء:
:#C
كود :
[align=left]private DB.ProgramsDB db = new DB.ProgramsDB();
[/align]:VB
كود :
[align=left]private db As new DB.ProgramsDB()
[/align]في حدث تحميل الصفحة:
:#C
كود :
[align=left]if (IsPostBack) return;
try
{
var data = (from d in db.Programs
where d.ID == int.Parse(RouteData.Values["id"].ToString())
select d).SingleOrDefault();
if (data == null) { Response.Redirect("~/404.aspx"); return; }
pgname.Text = data.ProgName;
about.Text = data.Description;
pname.Text = data.PName;
price.Text = data.Price.ToString();
}
catch { }[/align]:VB
كود :
[align=left]If IsPostBack Then Exit Sub
Try
Dim data = (From d In db.Programs
Where d.ID = Integer.Parse(RouteData.Values("id").ToString())
Select d).SingleOrDefault()
If data Is Nothing Then
Response.Redirect("~/404.aspx")
Return
End If
pgname.Text = data.ProgName
about.Text = data.Description
pname.Text = data.PName
price.Text = data.Price.ToString()
Catch
End Try[/align]في حدث ضغط الـ LinkButton:
:#C
كود :
[align=left]Session[RouteData.Values["id"].ToString()] = 1;
[/align]:VB
كود :
[align=left]Session(RouteData.Values("id").ToString()) = 1[/align]