نمایش نتایج 1 تا 8 از 8

نام تاپیک: مشکل با دستیابی به property های داینامیک user control

  1. #1

    مشکل با دستیابی به property های داینامیک user control

    باسلام
    من یک user control دارم که یک property به نام text داره ( هم رایت هم رید)
    این usercontrol بصورت داینامیک داخل یک placeholder اضافه میشه ( در هنگام لود صفحه )
    خوب حالا میخوام به خاصیت text این property مقدار "saalam" رو وارد کنم
    ولی نمدونم چطور میشه به این usercontrol دسترسی پیدا کرد چون داینامیک ادد شده...

    البته باید بگم یکی از دوستان مشکل بنده رو داره که چون سوالش رو بد مطرح کرده جواب درستی نگرفته :https://barnamenevis.org/showthread.php?t=53596

  2. #2
    از findcontrol استفاده کن

    MyControl ctrl=(MyControl) PlaceHolder1.FindControl("controlname");
    ctrl.Text="Something";

  3. #3
    آخه مشکل اینه که وقتی داینامیک اد میشه من آی دی اون یوزر کنترل رو نمیدونم که بخوام findesh کنم... بعدشم با چی ctype کنم؟

  4. #4
    خوب خودم راهشو پیدا کردم
    برای دوستانی که مشکل بنده رو دارن توضیح میدم که :
    ابتدا دقت کنن که کلاس یوزر کنترلشون حتما از نوع public particial class باشه
    مرحله دوم اد کردن یوزر کنترل بود که مشکلی نداشت :

    Dim myControl As Control = LoadControl("scaler_viewer.ascx")

    Me.PlaceHolder1.Controls.Add(myControl)
    حالا نکته اینجاست که میخوایم مثلا به خاصیت text این کنترل دستسی پیدا کنیم

    For Each myprop As Modules_scaler_viewer In PlaceHolder1.Controls


    myprop.txt = "salam"

    Next
    کار تمومه خاصیت تکس این یوز کنترل رو برابر سلام قرار دادم ....

    Modules_scaler_viewer هم که اسم کلاس یوز کنترلمه...

  5. #5
    کاربر دائمی آواتار pegasos
    تاریخ عضویت
    مهر 1383
    محل زندگی
    MSDN
    پست
    125
    بادرود.
    شاید این پاسخ ضروری نباشد.
    ولی به نظر من راهی که شما برای این کار انجام می دهید منطقی نیست.
    بیاید فقط یک ذره OOP را رعایت کنیم.
    شما اگر پراپرتی عمومی در یوزر کنترل خود دارید فقط کافی است ,کنترلی که لود کرده اید CAST کنید به کلاس اصلی UserControl خودتان و سپس به تمام منابع عمومی آن کلاس دسترسی خواهید داشت.
    این کار را انجام بدهید چنانچه مشکلی بود،من سورس این کار را اینجا قرار می دهم.

    به امید موفقیت.

  6. #6
    دوست عزیز وقتی شما دارید مثلا 10 تا کنترل ادد میکنید چطور میفهمید که کدوم به کدوم هست؟
    آی دی کنترل ها پس از ادد شدن تغییر میکنه و نمیشه پیداشون کرد
    از روی ایندکس میشه اینکار کرد که کار درستی نیست
    شما کاری که گفتید رو امتحان کردید ؟ جواب میده؟
    اینم ببنید بد نیست ؟http://www.beansoftware.com/ASP.NET-...-Run-Time.aspx

  7. #7
    کاربر دائمی آواتار pegasos
    تاریخ عضویت
    مهر 1383
    محل زندگی
    MSDN
    پست
    125
    با درود .
    برداشت ذهنی من از صحبتهای شما به این صورت است :
    من یک user control دارم که یک property به نام text داره ( هم رایت هم رید)

    public class Control1 : System.Web.UI.UserControl
    {

    private string text;
    public string Text
    {
    get
    {
    return this.text;
    }
    set
    {
    this.text = value;
    }
    }

    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Write("This is Control 1.");
    }

    }



    این usercontrol بصورت داینامیک داخل یک placeholder اضافه میشه ( در هنگام لود صفحه )

    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.PlaceHolder PlaceHolder1;
    //write by Hand
    protected Control1 ctr;

    private void Page_Load(object sender, System.EventArgs e)
    {
    ctr = (Control1)LoadControl("Control1.ascx");
    this.PlaceHolder1.Controls.Add(ctr);


    }
    }



    خوب حالا میخوام به خاصیت text این property مقدار "saalam" رو وارد کنم
    ولی نمدونم چطور میشه به این usercontrol دسترسی پیدا کرد چون داینامیک ادد شده...
    ابتدا در مورد نوشته آقای SalarSoft که کاملا درست است و من با یک مقدار دخل و تصرف باز هم اینجا قرار می دهم



    Control1 MyControl=(Control1) PlaceHolder1.FindControl(ctr.ClientID);
    MyControl.Text="Something";

    Response.Write(MyControl.Text);


    و چیزی که من می گویم این است :
    شما می توانید در تمامی رویدادهای این صفحه به کنترلتان دسترسی داشته باشید بدون هیچ زحمت اضافه ای :


    ctr.Text = "Hello New World.";
    Response.Write(ctr.Text);



    امیدوارم درست متوچه شده باشم.
    می توانید این کد را تست کنید. و نتیجه را به من بگویید.

    به امید موفقیت.

  8. #8
    ممنون از راهنماییتون متوجه شدم

تاپیک های مشابه

  1. مقاله جامع: User Control ها و Custom Control ها در ASP.NET
    نوشته شده توسط Behrouz_Rad در بخش مقالات مرتبط با Microsoft .Net Framework
    پاسخ: 12
    آخرین پست: سه شنبه 24 اردیبهشت 1392, 10:35 صبح
  2. ساختن User Control
    نوشته شده توسط Amir Taghavi در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 10 شهریور 1386, 19:04 عصر
  3. تعریف Property و آیکون برای User Control
    نوشته شده توسط احمد سامعی در بخش C#‎‎
    پاسخ: 3
    آخرین پست: پنج شنبه 03 اسفند 1385, 14:13 عصر
  4. Change form property when user log out
    نوشته شده توسط rockpigeon در بخش طراحی وب (Web Design)
    پاسخ: 5
    آخرین پست: جمعه 20 مرداد 1385, 13:19 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •