سلام دوستان
من می خوام با استفاده از کنترلهای asp یه کاپوننت درست کنم چطور باید این کار رو انجام بدم؟
Printable View
سلام دوستان
من می خوام با استفاده از کنترلهای asp یه کاپوننت درست کنم چطور باید این کار رو انجام بدم؟
سلام به مسیر زیر برید: New -> Project -> ASP.Net Server Control البته این در vs2088 هستش، در 2010 نمی دونم هنوز هست یا نه! موفق باشید
یک پروژه از نوع 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);
}
برای حرفه ای شدن در این کار راه درازی باقیست. و این پست مجال شرح کامل رو به من نمیده. امیدوارم مفید واقع بشه
یک کلاس بساز و از کلاس کنترل مدنظرت ارث بری کن اینجوری تمام خاصیت کنترل داری و میتونی بهش خاصیت و رویدادهایی اضافه کنی...!
دوستان ممنون
توی سی شارپ راحت میشده یه dll درست کرد و اونو توی تموم پرژه ها بکار برد برای dll کردنش چکار باید بکنم؟
سلام.
لطفا به این مقاله رجوع کنید.
موفق باشید.