js获取UserControl内容,避免拼html的麻烦
2012-02-03 17:33
627 查看
今天看了老赵的文章可是怎么都调试不通过。
[AjaxPro.AjaxMethod]
public string gethtml()
{
UcViewHelper<UserControl> viewManager = new UcViewHelper<UserControl>();
UserControl control = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx");
string s=viewManager.RenderView(control);
return s;
}
public class UcViewHelper<T> where T : UserControl
{
private MyPage m_pageHolder;
public T LoadViewControl(string path)
{
m_pageHolder = new MyPage();
return (T)m_pageHolder.LoadControl(path);
}
public string RenderView(T control)
{
StringWriter output = new StringWriter();
this.m_pageHolder.Controls.Add(control);
HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
return output.ToString();
}
}
class MyPage : Page
{
public override void VerifyRenderingInServerForm(Control control)
{
//if (control is GridView || control is UserControl)
//{
// return;
//}
//base.VerifyRenderingInServerForm(control);
}
}
测试通过。
如果:
[AjaxPro.AjaxMethod]
public string gethtml()
{
string s = getString();
return s;
}
public string getString()
{
UserControl control = LoadControl("~/uc/giftoutmodel.ascx") as UserControl;
StringWriter tw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(tw);
control.RenderControl(writer);
return writer.InnerWriter.ToString();
}
public override void VerifyRenderingInServerForm(Control control)
{
// if (control is GridView || control is UserControl)
// {
// return;
//}
//base.VerifyRenderingInServerForm(control);
}
究其原因,原来是老赵的代码 继承了Page 然后使用VerifyRenderingInServerForm
验证,二我的代码没有继承Page直接使用VerifyRenderingInServerForm 所以会造成
[AjaxPro.AjaxMethod]
public string gethtml()
{
UcViewHelper<UserControl> viewManager = new UcViewHelper<UserControl>();
UserControl control = viewManager.LoadViewControl("~/uc/giftoutmodel.ascx");
string s=viewManager.RenderView(control);
return s;
}
public class UcViewHelper<T> where T : UserControl
{
private MyPage m_pageHolder;
public T LoadViewControl(string path)
{
m_pageHolder = new MyPage();
return (T)m_pageHolder.LoadControl(path);
}
public string RenderView(T control)
{
StringWriter output = new StringWriter();
this.m_pageHolder.Controls.Add(control);
HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
return output.ToString();
}
}
class MyPage : Page
{
public override void VerifyRenderingInServerForm(Control control)
{
//if (control is GridView || control is UserControl)
//{
// return;
//}
//base.VerifyRenderingInServerForm(control);
}
}
测试通过。
如果:
[AjaxPro.AjaxMethod]
public string gethtml()
{
string s = getString();
return s;
}
public string getString()
{
UserControl control = LoadControl("~/uc/giftoutmodel.ascx") as UserControl;
StringWriter tw = new StringWriter();
HtmlTextWriter writer = new HtmlTextWriter(tw);
control.RenderControl(writer);
return writer.InnerWriter.ToString();
}
public override void VerifyRenderingInServerForm(Control control)
{
// if (control is GridView || control is UserControl)
// {
// return;
//}
//base.VerifyRenderingInServerForm(control);
}
究其原因,原来是老赵的代码 继承了Page 然后使用VerifyRenderingInServerForm
验证,二我的代码没有继承Page直接使用VerifyRenderingInServerForm 所以会造成
相关文章推荐
- js获取UserControl内容为拼html时提供方便
- js获取UserControl内容为拼html时提供方便
- JS获取word文档内容到html页面
- js方法中获取开始标签和结束标签中间插入内容的方式(innerHTML/html())
- JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
- js获取html内容
- JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
- js获取文档title内容(HTMLTitleElement知多少?)
- JS编辑器获取选择内容的HTML多浏览器兼容性写法(支持Chorme、Firefox)
- js 获取html table单元格内容,获取单元格内输入框中的内容
- JS实现获取word文档内容并输出显示到html页面示例
- js函数获取html中className所在的内容并去除标签
- 小胖说事36----iOS通过js 获取webview中的html内容
- js获取fck文本编辑器内的内容,不包括html标签在内
- js函数获取html中className所在的内容并去除标签
- js如何获取html中用户输入到文本框中的内容?
- JS学习笔记(三):HTML通过ajax请求获取并显示php中的内容
- 在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
- JS获取html页面上选中内容
- jquery js获取html选中的内容