PDA

View Full Version : سوال: چطور میشه یه کامپوننت به وسیله کنترلهای asp درست کرد



dontspeak
یک شنبه 30 مرداد 1390, 19:57 عصر
سلام دوستان
من می خوام با استفاده از کنترلهای asp یه کاپوننت درست کنم چطور باید این کار رو انجام بدم؟

mehran_sh_t
یک شنبه 30 مرداد 1390, 23:47 عصر
سلام به مسیر زیر برید: New -> Project -> ASP.Net Server Control البته این در vs2088 هستش، در 2010 نمی دونم هنوز هست یا نه! موفق باشید

d_derakhshani
یک شنبه 30 مرداد 1390, 23:47 عصر
یک پروژه از نوع ASP.Net Ajax Server Control درست کن. در این صورت فایل ServerControl1 را در پروژه مشاهده خواهی نمود. در تابع Render با استفاده از HtmlTextWriter هر آنچه که می خواهی رو به صورت رشته ای Write کن. در HtmlTextWriterتوابع زیادی موجود هست که در حد حوصله من در این پست نیست(من فقط سرنخ رو خدمت شما عرضه می کنم و مابقی به همت خودتان).
یک نمونه کد رو در زیر می بینید:



[Category("Appearance"), Editor("System.Web.UI.Design.ImageUrlEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor)), UrlProperty]
public string ImageUrl
{
get
{
string str = (string)this.ViewState["ImageUrl"];
if (str != null)
{
return str;
}
return string.Empty;
}
set
{
this.ViewState["ImageUrl"] = value;
}

}
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
writer.Write("<img src='" + ImageUrl + "' id='" + this.ClientID + "' />");
}

لازم نیست حتما با با مقادیر رشته ای کار کنید مخصوصا هنگام کار با جداول که مسلما اگه رشته ای کار کنید احتمال خطا و اشتباه در اون زیاده. مثال زیر رو ببین:



protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
Table tb = new Table();
TableRow r=new TableRow();
tb.Rows.Add(r);
r.Cells.Add(new TableCell());
r.Cells.Add(new TableCell());

tb.RenderControl(writer);
}


برای حرفه ای شدن در این کار راه درازی باقیست. و این پست مجال شرح کامل رو به من نمیده. امیدوارم مفید واقع بشه

Saman Hashemi
دوشنبه 31 مرداد 1390, 02:08 صبح
یک کلاس بساز و از کلاس کنترل مدنظرت ارث بری کن اینجوری تمام خاصیت کنترل داری و میتونی بهش خاصیت و رویدادهایی اضافه کنی...!

dontspeak
دوشنبه 31 مرداد 1390, 11:39 صبح
دوستان ممنون
توی سی شارپ راحت میشده یه dll درست کرد و اونو توی تموم پرژه ها بکار برد برای dll کردنش چکار باید بکنم؟

d_derakhshani
دوشنبه 31 مرداد 1390, 20:35 عصر
دوستان ممنون
توی سی شارپ راحت میشده یه dll درست کرد و اونو توی تموم پرژه ها بکار برد برای dll کردنش چکار باید بکنم؟
سوال خوبی نپرسیدی، چون ASP.Net Ajax Server Control ای رو که بنده توضیح دادم، با Build کردنش یک dll ساخته می شه. با انتخاب Choose item در toolbox و browes کردن می تونید dll مربوطه رو انتخاب کنی و مثل سایر کنترل ها به toolbox اضافه خواهد شد.

mehdi.mousavi
سه شنبه 01 شهریور 1390, 00:27 صبح
سلام دوستان من می خوام با استفاده از کنترلهای asp یه کاپوننت درست کنم چطور باید این کار رو انجام بدم؟

سلام.
لطفا به این مقاله (http://barnamenevis.org/showthread.php?221629-%D8%AA%D9%88%D8%B3%D8%B9%D9%87-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D8%B1%D9%86%DA%AF-%D8%AF%D8%B1-ASP.NET-%D8%A8%D9%87-%DA%A9%D9%85%DA%A9-jQuery) رجوع کنید.

موفق باشید.

dontspeak
سه شنبه 01 شهریور 1390, 17:17 عصر
سوال خوبی نپرسیدی، چون ASP.Net Ajax Server Control ای رو که بنده توضیح دادم، با Build کردنش یک dll ساخته می شه. با انتخاب Choose item در toolbox و browes کردن می تونید dll مربوطه رو انتخاب کنی و مثل سایر کنترل ها به toolbox اضافه خواهد شد.
درسته بی سوادیم ولی دیگه نه اینقدر. انجام دادم چون dll نساخت این سوالو کردم اگه پستمو بخونی می بینی که توی c# اینکارو بلدم. و مشکلم توی asp هست یعنی جریان build رو بلدم. ولی بازم دمت گرم چکار کنیم که کشته مرده برنامه نویسا هستیم :لبخند: