PDA

View Full Version : سوال: تعریف مشخصه ها و متدها بری UserControl



BN.Reza
جمعه 31 تیر 1390, 16:22 عصر
سلام!

من می خوام یک WebUserControl در vs درست کنم که یک خاصیت text داشته باشه تا متن را داخل user control نشون بده . لطفا کمک کنید :افسرده:

Saman Hashemi
جمعه 31 تیر 1390, 17:51 عصر
TextBox TextEditorInsideUserControl = new TextBox();
TextEditorInsideUserControl = (System.Web.UI.WebControls.TextBox)this.WebUserCon trol1.FindControl("TextBox1");
TextEditorInsideUserControl.Text = "Saman Hashemi";

Himalaya
جمعه 31 تیر 1390, 19:13 عصر
سلام

TextBox TextEditorInsideUserControl = new TextBox();
TextEditorInsideUserControl = (System.Web.UI.WebControls.TextBox)this.WebUserCon trol1.FindControl("TextBox1");
TextEditorInsideUserControl.Text = "Saman Hashemi";

درسته که کار میکنه ولی ایرادی که داره اینه که شما یک بار یه نمونه جدید از TextBox ایجاد کردید (خط اول) و تو خط بعد اومدید ارجاعی از تکست باکس موجود تو یوزر کنترل رو تو اون قرار دادید. احتیاجی به این کار نبود. هر چند که تو صورت سوال این رو نخواسته ولی کد شما باید به این صورت باشه (البته بدون چک کردن null بودن یا نبودن تکست باکس)

TextBox myTextBox = (TextBox)this.WebUserControl1.FindControl("TextBox1");
myTextBox.Text = "Your Text";

اما واسه خوندن یا دستکاری کردن مثلا مقدار تکست باکس موجود تو یوزر کنترل، از طریق پراپرتی، مثلا این پراپرتی رو به یوزر کنترل اضافه میکنیم

public string MyControlText
{
get { return TextBox1.Text; }
set { TextBox1.Text = value; }
}
بعد واسه تغییر اون از طریق صفحه حادی این یوزر کنترل
یا مستقیم تو سورس صفحه، اون پراپرتی رو تغییر میدیم

<uc1:WebUserControl1 ID="WebUserControl1" runat="server" MyControlText="salam" />
یا از طریق کد نویسی

WebUserControl1.MyControlText = "salam";

BN.Reza
جمعه 31 تیر 1390, 20:59 عصر
دستون درد نکنه ولی کدایی که گفتین نوشتم ولی erorr مییده، می شه در مورد کداهم یه توضیحی بدین .
ضمنا من با vs 2008 کار می کنم .

Himalaya
شنبه 01 مرداد 1390, 00:00 صبح
سلام.
چیز خاصی ننوشتم که error بده، ضمن اینکه کدا رو اول تست کردم، بعد اینجا قرار دادم
یه یوزر کنترل درست میکنی با اسم مثلا WebUserControl و یه TextBox توش قرار میدی با اسم TextBox1
بعد تو صفحه مورد نظر یه نمونه از این یوزر کنترل قزار میدی و مقدار تکست باکس اون رو، یا با روش اول (FindControl) و یا با روش دوم (استفاده از پراپرتی) تغییر میدی یا میخونی.
مثال دومی که برات زدم بیشتر واسه این بود که با نحوه تعریف پراپرتی واسه یوزر کنترل آشنا بشی (به خاطر عنوان این تاپیک)، نه اینکه عینا همین کدا رو بزاری تو پروژت.
اگه بازم نتونستی، برنامت رو بزار اینجا

BN.Reza
شنبه 01 مرداد 1390, 01:34 صبح
درست شد!
آخه این اولین برنامه کاملی که دارم می نویسم
فردا پس فردا تموم میشه می زارم اینجا نظر بدین!:لبخند:
تشکر