15-10-12, 10:55 AM
كاتب الموضوع : Ahmed Moosa
السلام عيكم ورحمة الله الحمد الله والصلاة والسلام على رسول الله صلى الله عليه وسلم
الفكرة
أولا
- إعلم أولاً أن تغير الــــ Master Page لابد أن يكون فى حدث Page_PreInit أو ما قبل هذا الحدث أى قبل Page_Load أو أى حدث لآى أداة فى الصفحة .
ثانياً :-
- سيتم العمل باستخدام الأمر Request الذى سيتلقى QueryString لتغيير الـ Master
- و أيضاً الأمر Profile داخل web.cofig لتعريف خاصية و هى MasterPageFile.
ثالثاً:-
- سيكون العمل داخل (web.config) , ( default.aspx.cs),(default.aspx)
خطوات العمل :-
الإعداد:
1- قم بفتح Empty Web site .
ثم من Add New Item إنشىء مايلى .
2- قم بتصميم صفحيتن من نوع MasterPage ووأعطهم أى إسم تريد .
3- قم بعمل صفحة عادية و لتكن default.aspx او أى إسم تريد .
4- قم بإضافة ملف Web.Config .
كتابة الكود :-
1- قم بفتح ملف (Web.comfig) وأكتب مايلى
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<[/color][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]web[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]profile [/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]properties[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]add name[/color][color=#007700]=[/color][color=#dd0000]"MasterPageFile" [/color][color=#0000bb]defaultValue [/color][color=#007700]=[/color][color=#dd0000]"MasterPage.master"[/color][COLOR=#007700]/>
</[/COLOR][color=#0000bb]properties[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]profile[/color][COLOR=#007700]>
</[/COLOR][color=#0000bb]system[/color][color=#007700].[/color][color=#0000bb]web[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
2- فى صفحة default.aspx أضف مايلى :
كود :
[color=#000000][COLOR=#0000bb][/color][color=#007700]<%@ [/color][color=#0000bb]Page Language[/color][color=#007700]=[/color][color=#dd0000]"C#" [/color][color=#0000bb]MasterPageFile[/color][color=#007700]=[/color][color=#dd0000]"~/MasterPage.master" [/color][color=#0000bb]AutoEventWireup[/color][color=#007700]=[/color][color=#dd0000]"true" [/color][color=#0000bb]CodeFile[/color][color=#007700]=[/color][color=#dd0000]"Default.aspx.cs" [/color][color=#0000bb]Inherits[/color][color=#007700]=[/color][color=#dd0000]"_Default" [/color][color=#0000bb]Title[/color][color=#007700]=[/color][color=#dd0000]"Untitled Page" [/color][COLOR=#007700]%>
<[/COLOR][color=#0000bb]asp[/color][color=#007700]:[/color][color=#0000bb]Content ID[/color][color=#007700]=[/color][color=#dd0000]"Content1" [/color][color=#0000bb]ContentPlaceHolderID[/color][color=#007700]=[/color][color=#dd0000]"ContentPlaceHolder1" [/color][color=#0000bb]Runat[/color][color=#007700]=[/color][color=#dd0000]"Server"[/color][COLOR=#007700]>
[/COLOR][color=#0000bb]This [/color][color=#007700]default [/color][color=#0000bb]page [/color][color=#007700]&[/color][color=#0000bb]nbsp[/color][COLOR=#007700];
<[/COLOR][color=#0000bb]br [/color][COLOR=#007700]/>
<[/COLOR][color=#0000bb]asp[/color][color=#007700]:[/color][color=#0000bb]HyperLink ID[/color][color=#007700]=[/color][color=#dd0000]"HyperLink1" [/color][color=#0000bb]runat[/color][color=#007700]=[/color][color=#dd0000]"server" [/color][color=#0000bb]NavigateUrl[/color][color=#007700]=[/color][color=#dd0000]"~/Default.aspx?master=firstmaster"[/color][color=#007700]>[/color][color=#0000bb]MasterPage 1[/color][color=#007700]</[/color][color=#0000bb]asp[/color][color=#007700]:[/color][color=#0000bb]HyperLink[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]asp[/color][color=#007700]:[/color][color=#0000bb]HyperLink ID[/color][color=#007700]=[/color][color=#dd0000]"HyperLink2" [/color][color=#0000bb]runat[/color][color=#007700]=[/color][color=#dd0000]"server" [/color][color=#0000bb]NavigateUrl[/color][color=#007700]=[/color][color=#dd0000]"~/Default.aspx?master=secondmaster"[/color][color=#007700]>[/color][color=#0000bb]MasterPage 2[/color][color=#007700]</[/color][color=#0000bb]asp[/color][color=#007700]:[/color][color=#0000bb]HyperLink[/color][COLOR=#007700]>
<[/COLOR][color=#0000bb]br [/color][COLOR=#007700]/>
<[/COLOR][color=#0000bb]br [/color][COLOR=#007700]/>
</[/COLOR][color=#0000bb]asp[/color][color=#007700]:[/color][color=#0000bb]Content[/color][COLOR=#007700]>
[/COLOR][color=#0000bb][/color][/COLOR]
3- فى صفحة default.aspx.cs أضف مايلى :
C#
كود :
[color=#000000][COLOR=#0000bb] [/color][color=#007700]protected [/color][color=#0000bb]void Page_PreInit[/color][color=#007700]([/color][color=#0000bb]object sender[/color][color=#007700], [/color][color=#0000bb]EventArgs e[/color][COLOR=#007700])
{
if ([/COLOR][color=#0000bb]Request[/color][color=#007700][[/color][color=#dd0000]"master"[/color][color=#007700]] != [/color][color=#0000bb]null [/color][COLOR=#007700])
{
switch ([/COLOR][color=#0000bb]Request[/color][color=#007700][[/color][color=#dd0000]"master"[/color][COLOR=#007700]])
{
case [/COLOR][color=#dd0000]"firstmaster"[/color][COLOR=#007700]:
[/COLOR][color=#0000bb]Profile[/color][color=#007700].[/color][color=#0000bb]MasterPageFile [/color][color=#007700]=[/color][color=#dd0000]"MasterPage.master"[/color][COLOR=#007700];
break;
case [/COLOR][color=#dd0000]"secondmaster"[/color][COLOR=#007700]:
[/COLOR][color=#0000bb]Profile[/color][color=#007700].[/color][color=#0000bb]MasterPageFile [/color][color=#007700]= [/color][color=#dd0000]"MasterPage2.master"[/color][COLOR=#007700];
break;
}
}
[/COLOR][color=#0000bb]MasterPageFile [/color][color=#007700]= [/color][color=#0000bb]Profile[/color][color=#007700].[/color][color=#0000bb]MasterPageFile[/color][COLOR=#007700];
}
[/COLOR][color=#0000bb][/color][/COLOR]
VB
كود :
[COLOR=#000000][COLOR=#0000bb]
[/COLOR][color=#007700]Protected [/color][color=#0000bb]Sub Page_PreInit[/color][color=#007700]([/color][color=#0000bb]ByVal sender [/color][color=#007700]As [/color][color=#0000bb]Object[/color][color=#007700], [/color][color=#0000bb]ByVal e [/color][color=#007700]As [/color][color=#0000bb]EventArgs[/color][COLOR=#007700])
If [/COLOR][color=#0000bb]Not Request[/color][color=#007700]([/color][color=#dd0000]"master"[/color][color=#007700]) [/color][COLOR=#0000bb]Is Nothing Then
Select [/COLOR][color=#007700]Case [/color][color=#0000bb]Request[/color][color=#007700]([/color][color=#dd0000]"master"[/color][COLOR=#007700])
Case [/COLOR][COLOR=#dd0000]"firstmaster"
[/COLOR][color=#0000bb]Profile[/color][color=#007700].[/color][color=#0000bb]MasterPageFile [/color][color=#007700]= [/color][COLOR=#dd0000]"MasterPage.master"
[/COLOR][color=#007700]Case [/color][COLOR=#dd0000]"secondmaster"
[/COLOR][color=#0000bb]Profile[/color][color=#007700].[/color][color=#0000bb]MasterPageFile [/color][color=#007700]= [/color][COLOR=#dd0000]"MasterPage2.master"
[/COLOR][COLOR=#0000bb]End Select
End [/COLOR][COLOR=#007700]If
[/COLOR][color=#0000bb]MasterPageFile [/color][color=#007700]= [/color][color=#0000bb]Profile[/color][color=#007700].[/color][COLOR=#0000bb]MasterPageFile
End Sub
[/COLOR][/COLOR]
التنفيذ :
1- عند الضغط على الرابط المسمى MasterPage1 سيعرض محتوياتها . وكذلك الحال مع الرابط
المسمى MasterPage2 .
2- قل الحمد لله .
.................................................. ........
والسلام عليكم ورحمة الله .