ورود

View Full Version : لود userControl در زمان اجرا با استفاده از ajax.$



habib_namvar
شنبه 22 تیر 1392, 08:53 صبح
سلام دوستان
همون طوری که از عنوان تاپیکم مشخصه من می خوام یک user control رو در زمان اجرا با استفاده از ajax لود کنم
تاپیک هایی که قبلا در این اتاق بودن رو هم خوندم کدم به این شکله


[System.Web.Services.WebMethod]
public static string LoadUserControl(string message)
{
using (Page page = new Page())
{
UserControl userControl = (UserControl)page.LoadControl("SampleUserCtrl.ascx");

page.Controls.Add(userControl);
using (StringWriter writer = new StringWriter())
{
page.Controls.Add(userControl);
HttpContext.Current.Server.Execute(page, writer, false);
return cleanHtml(writer.ToString());

}
}
}



من وقتی از یک لیبل در usercontrol استفاده میکنم خیلی راحت لود میشه ولی اگه یک تگ دیگه مثل textbox یا button اضافه کنم هنگام لود در خط یکی مونده به آخر (قبل از return ) خطا میده
خطاش هم اینه
107117

لطفا راهنمایی کنید ...

habib_namvar
شنبه 22 تیر 1392, 11:06 صبح
دست همه کسانی که کمک کردن درد نکنه
جوابش اینه شاید یه نفر دیگه لازمش شه


[System.Web.Services.WebMethod]
public static string LoadUserControl(string message)
{
using (Page page = new Page())
{
UserControl userControl = (UserControl)page.LoadControl("SampleUserCtrl.ascx");


HtmlForm htmlf = new HtmlForm();
ScriptManager scriptManager = new ScriptManager();
//htmlf.Controls.Add(scriptManager);
htmlf.Controls.Add(userControl);
page.Controls.Add(htmlf);
using (StringWriter writer = new StringWriter())
{
HttpContext.Current.Server.Execute(page, writer, false);
return cleanHtml(writer.ToString());

}
}
}

private static string cleanHtml(string html)
{
return Regex.Replace(html, @"<[/]?(form)[^>]*?>", string.Empty, RegexOptions.IgnoreCase);
}