ورود

View Full Version : رجستر پویا یوزر کنترل



aminghaderi
جمعه 12 شهریور 1389, 23:58 عصر
درود بر بزرگواران.

چگونه می توان این خط کد رو در داخل کد فایل تعریف کرد :

<%@ Register src="~/usercontrols/SimpleControl.ascx"
tagname="SimpleControl" tagprefix="SimpleControl" %

یعنی چطوری در تعریف یوزر کنترل این خط کد رو پویا اضافه کنیم؟؟؟؟؟؟؟؟؟؟

Himalaya
شنبه 13 شهریور 1389, 00:23 صبح
یعنی چی که اون خط کد رو میخوای به صورت پویا تو کد اضافه کنی؟؟؟
اگه میخوای یه یوزر کنترل رو از طریق کد تو صفحه لود کنی که یه چیز تو این مای ها هستش


private void LinkButton7_Click(object sender, System.EventArgs e)
{
LoadUserControl("register.ascx");
}

public void LoadUserControl(string controlName)
{
Panel1.Controls.Clear();
string userControlID = controlName.Split('.')[0];
Control targetControl = Panel1.FindControl(userControlID);
if (Object.Equals(targetControl, null))
{
UserControl userControl = (UserControl)this.LoadControl("~/file/control/farsi/" + controlName);
//slashes and tildes are forbidden
userControl.ID = userControlID.Replace("/", "").Replace("~", "");
this.Panel1.Controls.Add(userControl);
}
}

aminghaderi
شنبه 13 شهریور 1389, 00:40 صبح
اگه میخوای یه یوزر کنترل رو از طریق کد تو صفحه لود کنی که یه چیز تو این مای ها هستش
له درسته یه چیزی تو این مایه ها ، یعنی می خوام چند تا یوزر کنترل رو در رویداد PageLoad در زمان اجرا به صفحه ام اضافه کنم.
می شه یه مقدار در باره کد توضیح بدید؟؟؟؟

hesam_a110
شنبه 13 شهریور 1389, 00:48 صبح
درود بر شما
اگر منظور شما اضافه کردن یک یوز کنترل در حال اجرای برنامه و از طریق کد است بله با اضافه کردن اون به یک placeholder امکان پذیر هست


UCGeneral userControl = (UCGeneral)this.LoadControl("
UCGeneral.ascx
");
userControl.ID = userControlID.Replace("/", "").Replace("~", "");

LatestLoadedControlNameUCGeneral = controlName;
this.PlaceHolderUC.Controls.Add(userControl);


پیروز باشید

Himalaya
شنبه 13 شهریور 1389, 00:53 صبح
پس چند تا پنل با چند تا یوزر کنترل میخوای. هر یوزر کنترل تو یه پنل اندازه پنل ها و موقعیت اونا رو تو صفحه رو هم که تو کدهات از قبل مشخص میکنی. به ورودی تابع LoadUserControl یه پارامتر از نوع panel هم اضافه کن (که مقصد اون یوزر کنترل روی صفحه رو مشخص میکنه)
اول کنترلهایی که داخل اون پنل قرار گرفتن پاک میشن
بعد اسم اون یوزر کنترل رو بدون پسوند میگیره و تو پنل مقصد دنبال اون کنترل میگرده . اگه وجود داشت از قبل که هیچ ولی اگه وجود نداشت اون یوزر کنترل رو از مسیری که تو کدا میبینی توی پنل مقصد لود میکنه. همین

aminghaderi
شنبه 13 شهریور 1389, 00:57 صبح
درود بر شما
اگر منظور شما اضافه کردن یک یوز کنترل در حال اجرای برنامه و از طریق کد است بله با اضافه کردن اون به یک placeholder امکان پذیر هست
پیروز باشید

درود فراوان هم بر شما.
آدرس فایل کدام است؟؟

آیا اگر ما از 4 تا یوزر کنترل در صفحه استفاده کنیم ، می توان از queryString استفاده کرد؟؟؟ یعنی می توان از این رشته تقاضا ها در رویداد های داخل یوزر کنترل ها استفاده کرد؟؟

hesam_a110
شنبه 13 شهریور 1389, 01:06 صبح
راستش موقعی که من پست را فرستادم متوجه شدم که دوستان قبل من پست داده اند
مثل قبل از کاملا نشان داده که از کجا می شه به اون اضافه کرد در مثالی که براتون گذاشتم فرض بر بودن یوزر کنترل در کنار صفحه ای است قرار است به اون اضافه شود

aminghaderi
شنبه 13 شهریور 1389, 01:27 صبح
راستش موقعی که من پست را فرستادم متوجه شدم که دوستان قبل من پست داده اند
اشکالی نداره ، خیلی هم لطف کردین ، استفاده کردیم .:قلب:

اما شما دوستان که از یوزر کنترل استفاده کردید به این مورد بر نخوردید :

آیا اگر ما از 4 تا یوزر کنترل در صفحه استفاده کنیم ، می توان از queryString استفاده کرد؟؟؟ یعنی می توان از این رشته تقاضا ها در رویداد های داخل یوزر کنترل ها استفاده کرد؟؟
لطفا در صورت اطلاع راهنمایی فرمایید.

بسیار سپاسگزار

hesam_a110
شنبه 13 شهریور 1389, 01:38 صبح
یعنی می خواهید از QueryString نام یوز کنترل ها رو بخونید؟
فکر نمی کنم این کاردرستی باشه یه راه حل خیلی ساده یه مقدار 1،2،3،... بفرسید یا QueryString و در این طرف با یک Case اون را تفکیک کیند و یوزر کنترل مربوطه را مقدار دهی کنید و برای چندتا یوزر کنترل با _ بفرسید مثل 1_2_3 و بعد از تابع Split('_') استفاده کنید و یک for بگذارد و توی اون Case را بگذارید

aminghaderi
شنبه 13 شهریور 1389, 01:45 صبح
یعنی می خواهید از QueryString نام یوز کنترل ها رو بخونید؟
نه ، می خوام مقدار بفرستم و مقدار بگیرم ، مثلا یه رشته یا یه عدد.

فکر نمی کنم این کاردرستی باشه یه راه حل خیلی ساده یه مقدار 1،2،3،... بفرسید یا QueryString و در این طرف با یک Case اون را تفکیک کیند و یوزر کنترل مربوطه را مقدار دهی کنید و برای چندتا یوزر کنترل با _ بفرسید مثل 1_2_3 و بعد از تابع Split('_') استفاده کنید و یک for بگذارد و توی اون Case را بگذارید
پس می شود از QueryString استفاده کرد .

Himalaya
شنبه 13 شهریور 1389, 02:01 صبح
ببین به دردت میخوره