PDA

View Full Version : جایگزینی usercontrol به جای تک [control]



shahab_ksh
دوشنبه 17 آبان 1389, 00:24 صبح
با سلام

چطور میشه تگ [control] رو در صفحه جاری جایگزین یک usercontrol کرد؟

raziee
دوشنبه 17 آبان 1389, 10:10 صبح
UserControl ای رو که میخواهید جایگزین کنید Render میکنید و به یک String تبدیل میکنید.
برای این کار این جا (http://barnamenevis.org/forum/showthread.php?p=1120670#post1120670) را ببین.
رویداد Render رو override کنید و خروجی تولید شده رو دست کاری کنید.(جایگزین کن)
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
// some do it.
writer.Write(html.Trim());
}
}

این تاپیک (http://barnamenevis.org/forum/showthread.php?t=231858) هم ببین ممکنه کمکت کنه.

shahab_ksh
دوشنبه 17 آبان 1389, 15:10 عصر
ممنون با این کار فقط html ها تولید میشه پس event های اون و Propertics ها و Viewstate چی میشه؟

دیدم شما هم دنبال یه همچین چیزی بودید برای ماژول کردن و استفاده در template

raziee
دوشنبه 17 آبان 1389, 17:25 عصر
ممنون با این کار فقط html ها تولید میشه پس event های اون و Propertics ها و Viewstate چی میشه؟
بله.
این جمله ی آقای نصیری (http://vahidnasiri.blogspot.com/2009/07/blog-post_06.html) رو نگاه کنید.


+ در اين حالت چون اطلاعات كنترل‌ها به ViewState ‌اضافه نمي‌شوند،‌ ASP.Net Postback هم كار نمي‌كنه.

دیدم شما هم دنبال یه همچین چیزی بودید برای ماژول کردن و استفاده در template
آقای راد هم برای این مسئله (http://barnamenevis.org/forum/showthread.php?t=231858) ی بنده ، چنین چیزی رو فرمودند.

چیزی که الان به ذهنم میرسه استفاده از همون روش MVC هست. با jQuery روال کلیک دکمه رو به شکلی تنظیم کن که خصیصه ی action تگ form به آدرسی بره که معرف انجام عملیات توسط اون کنترل هست. مثلاً DoSomething.aspx?action=delete&id=2