برگزیده های پرشین تولز

تغییر متن یک لیبل در یک وب یوزر کنترل دیگر Change label in Other WebUserControl

Masood_Heidarni

Registered User
تاریخ عضویت
21 ژانویه 2007
نوشته‌ها
232
لایک‌ها
13
محل سکونت
تهران
با سلام
در دات نت 2 و vb.net یه مستر پیج دارم و 2 تا WebUserControl
در حالت عادی WebUserControl_1 لوود شده و دارای یک دکمه و یک تکست باکس است.
WebUserControl_2 نیز دارای یک لیبل است.
الان دو تا مشکل دارم :
1- میخوام با زدن دکمه در WebUserControl_1 فایل WebUserControl_2 در صفحه مستر پیج لوود شود
2- پس از لوود شدن وب یوزر کنترل 2 در مستر پیج در همان وب یوزر کنترل اولیه متن لیبل در WebUserControl_2 برابر تکست باکس وب کنترل اولیه شود
لطفا راهنمایی کنید.:)
با تشکر
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
1- از دورن web usercontrol 1 مستقیما به usercontrol 2 دسترسی نداری . پس باید اون رو find کنی و visible یوزرکنترل رو true کنی:
کد:
UserControl u = (UserControl)Page.Master.FindControl("userControl2");
        u.Visible = true;
البته راه دیگه ای هم داری اونهم اینه که یوزرکنترل 2 رو روی فرم نداشته باشی بلکه با کد ایجادش کنی که باید از یک PlaceHolder استفاده کنی و یوزرکنترل رو بهش اضافه کنی (اگه خواستی بگو در این مورد بیشتر توضیح بدم)

2-یکی از بهترین راه ها برای این که بتونی به کنترل های درونی یک یوزرکنترل دسترسی داشته باشی اینه که برای اون کنترلهای مورد نظر درون یوزرکنترل پراپرتی با دسترسی get و set تعریف کنی.
مثلا شما می خوای به خصوصیت Text متعلق به TextBox درون userControl2 دسترسی داشته باشی . درون کد یوزرکنترل 2 این پراپرتی را تعریف می کنی
کد:
public string Text
    {
        set
        {
            TextBox1.Text = value;
        }
        get
        {
            return TextBox1.Text;
        }
    }
به این ترتیب می تونی مقدار TextBox1.Text رو هم بخونی و هم تغییر بدی
 

Masood_Heidarni

Registered User
تاریخ عضویت
21 ژانویه 2007
نوشته‌ها
232
لایک‌ها
13
محل سکونت
تهران
با سلام
با تشکر از راهنمایی و لطف شما.:)
1- من یک PlaceHolder در صفحه گذاشته ام و میخوام با زدن دکمه در WebUserControl_1 دومین WebUserControl_2 را در PlaceHolder لوود کند و WebUserControl_2 در داخل صفحه اضافه نشده است.
لطف در این مورد هم یه توضیح و مثالی لطف بفرمایید
2- در این مورد از داخل دومی با چه دستوری و چجوری Get & Set را صدا بزنم؟
با تشکر
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
1- چند خط کد مربوط به افزودن یوزرکنترل به PlaceHolder رو که نوشتی بذار اینجا شاید بتونم مشکلت رو متوجه بشم
2- ببین دوست من شما یک پراپرتی تعریف کردی . خصوصیت Text برای کنترل TextBox یک پراپرتی هست . شما چطوری بهش دسترسی پیدا می کنی؟ براحتی با نوشتن کد TextBox1.Text . اینجا هم همین طوره اسم پراپرتی شما Text هست . پس کافیه بنویسید :
برای خوندن مقدار :
کد:
string s=userControl1.Text;

برای نوشتن :
کد:
usrControl1.Text="my text";
 

Masood_Heidarni

Registered User
تاریخ عضویت
21 ژانویه 2007
نوشته‌ها
232
لایک‌ها
13
محل سکونت
تهران
با سلام
با تشکر از راهنمایی و لطف شما استاد عزیز
کاری که میخوام انجام بدهم اینه:
دو تا وب یوزر کنترل دارم که داخل اولی یک دکمه وجود دارد
یه صفحه مستر پیج هم دارم که در زمان لوود شدن وب یوزر کنترل اولی را در صفحه لوود میکند.
الان میخوام با زدن دکمه در وب یوزر کنترل اولی ، وب یوزر کنترل دومی را در این مستر پیج لوود کند.
(البته با کد زیر میتونم این کار را از داخل خود مستر پیج انجام بدهم، با کوئری استرینگ هم میشه، اما مشکل من این مورد است)

<code>
PlaceHolder_Main.Controls.Add(Page.LoadControl("webusercontrol_1.ascx"))
</code>

با تشکر
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
همون طور که گفتم شما از درون مستر پیج دسترسی مستقیم به شیئ یوزرکنترل2 داری پس می تونی براحتی به PlaceHolder اضافه اش کنی .
اما از درون یوزرکنترل1 به شیئ یوزرکنترل2 دسترسی نداری . پس باید در کد اون دگمه ای که می خوای این کار رو برات انجام بده کد findcontrol رو که در پستهای بالا توضیح دادم بنویسی و به این شکل به شیئ یوزرکنترل2 دسترسی داشته باشی. این دسترسی که میسر شد همه کار میتونی باهاش انجام بدی.
 
بالا