PDA

View Full Version : دسترسی به کنترل های درون مسترپیج



rahil_2008
شنبه 29 خرداد 1389, 19:53 عصر
سلام دوستان
می خواستم ببینم چه جوری می شه در یک صفحه ای که از یک مسترپیج خوراک گرفته به کنترلهای داخل مسترپیج دسترسی پیدا کرد؟

Vahid_moghaddam
شنبه 29 خرداد 1389, 20:17 عصر
مثال:


//master page
public string Name
{
get {return txbName.Text;}
set {txbName.Text=value;}
}



//content page
((YourMasterPage) Master).Name="name";

Peyman.Gh
شنبه 29 خرداد 1389, 20:19 عصر
بطور مثال برای کادر متنی که در Master Page قرار دارد.

TextBox Test = (TextBox)Master.FindControl("TextBox1");
Response.Write(Test.Text);

موفق باشید.

rahil_2008
یک شنبه 30 خرداد 1389, 20:42 عصر
با سلام و تشکر از توجه شما دوستان
من هر دو راهو تست کردم
برای این کد:

//master page
2.public string Name
3.{
4.get {return txbName.Text;}
5.set {txbName.Text=value;}
6.}



view source (http://www.barnamenevis.org/forum/showthread.php?t=228708#viewSource)
print (http://www.barnamenevis.org/forum/showthread.php?t=228708#printSource)? (http://www.barnamenevis.org/forum/showthread.php?t=228708#about)

1.//content page
2.((YourMasterPage) Master).Name="name";



در قسمت your masterpage من می خواستم نام مسترپیج را بیارم ولی تو اینتلیسنس نمی اومد دستی هم نوشتم که طبیعتا پیام خطا می داد

و برای کد:

TextBox Test = (TextBox)Master.FindControl("TextBox1");
2. Response.Write(Test.Text);

هم با پیام خطای زیر مواجه شدم:

Error 1 Cannot convert type 'System.Web.UI.MasterPage' to 'System.Web.UI.WebControls.TextBox' C:\Documents and Settings\z\My Documents\Visual Studio 2008\WebSite3\Default.aspx.cs 18 25 C:\...\WebSite3\

لطفا راهنمایی کنید

Peyman.Gh
یک شنبه 30 خرداد 1389, 20:50 عصر
این کد را در Master Page نوشته اید ؟!

TextBox Test = (TextBox)Master.FindControl("TextBox1");
Response.Write(Test.Text);

Vahid_moghaddam
یک شنبه 30 خرداد 1389, 22:03 عصر
اگه صفحه شما master page داشته باشه، توی صفحه می تونید به کلاس master page دسترسی داشته باشید. هر دو کد گذاشته شده، کاملا درسته و عمل می کنه. یه جایی اشتباه کردید

rahil_2008
دوشنبه 31 خرداد 1389, 12:10 عصر
من کاریو که گفتین انجام دادم اما نشد
کدمو می زارم تو ضمیمه اگه زحمتی نیست ببینید

Vahid_moghaddam
دوشنبه 31 خرداد 1389, 12:21 عصر
کد رو براتون تغییر دادم.
1. چرا txt1 رو در content place holder قرار دادید؟
2. کلاس MasterPage در پروژه شما Masterpages_MasterPage هست و برای cast باید از این نام استفاده کنید.

Peyman.Gh
دوشنبه 31 خرداد 1389, 12:23 عصر
دوست عزیز در Master Page نباید اشیا را در ContentPlaceHolder قرار دهید.
این کد هم از Master Page پاک کنید.

TextBox Test = (TextBox)Master.FindControl("txt1");
Response.Write(Test.Text);

موفق باشید.