با درود .
برداشت ذهنی من از صحبتهای شما به این صورت است :
من یک 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);
امیدوارم درست متوچه شده باشم.
می توانید این کد را تست کنید. و نتیجه را به من بگویید.
به امید موفقیت.