>
返回专题首页
阅读排行
· 为WebForms说几句话,以及一些ASP.NET开发上的经验(1) (10454)
· 技巧:使用User Control做HTML生成 (8550)
· 为WebForms说几句话,以及一些ASP.NET开发上的经验(2) (6399)
· 为WebForms说几句话,以及一些ASP.NET开发上的经验(3) (6163)
· WebForms和MVC这2个模型都很棒,由相关讨论想到的 (3766)
· 为 MVC 和 Web Form 正名的一份“大字报” (2713)
· 拜托,请别再阉割WebForm了 (2666)
· 也论WebForm与MVC: 我是哪种程序员? (2277)
· 为 MVC 和 Web Form 正名的【第二份】“大字报” (1969)
· WebForm里面的MVC? (1963)
最新评论
>
re: 技巧:使用User Control做HTML生成
@Fanty
不直接使用Page,而是使用Page的自定义子类,把VerifyXxxx方法给override掉即可。
- Jeffrey Zhao 2008-07-21 21:46
>
re: 技巧:使用User Control做HTML生成
@Jeffrey Zhao
对不起,我没有看见上面的哪有更好的解决方案!
不过您当时的这种做法给了我很大的构想!令我可以想到2008 MVC下去进行该模式的设计!并且省下要建立ashx的麻烦
- Fanty 2008-07-21 19:28
>
re: 技巧:使用User Control做HTML生成
@Fanty
不是bug,上面的评论就讲过解决方法,你这个做法太复杂了。
- Jeffrey Zhao 2008-07-21 14:01
>
re: 技巧:使用User Control做HTML生成
ViewManager里面事实上是存在有一个BUG.如果控件存在着LinkButton,GridView等的必须依赖Form存在的控件,就会出现报错现象!
我的解决方法是
/// <summary>
/// 解释控件HTML
/// </summary>
/// <param name="control"></param>
/// <returns></returns>
public string RenderView(T control)
{
try
{
HtmlForm _form = new HtmlForm();
_form.ID = "form1";
_form.EnableViewState = false;
_pageHolder.Controls.Add(_form);
HtmlGenericControl _ulControl = new HtmlGenericControl("UL");
_form.Controls.Add(_ulControl);
_ulControl.Controls.Add(control);
System.IO.StringWriter output = new System.IO.StringWriter();
System.Web.HttpContext.Current.Server.Execute(_pageHolder, output, false);
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(output.ToString());
_pageHolder.Controls.Clear();
output.Close();
_form.Dispose();
return xmlDoc.DocumentElement.SelectNodes("UL")[0].InnerXml;
}
catch { return string.Empty; }
}
至于为什么要用XmlDocument读取指定的HTML模板,就是要去除生成出来多余的HTML代码
- Fanty 2008-07-21 12:57
>
re: 技巧:使用User Control做HTML生成
这么多评论啊…
- 陈招展 2008-07-17 00:33
>
re: 技巧:使用User Control做HTML生成
@Jeffrey Zhao
非常感谢,少加了
return false; // IE only
- miao~ 2008-07-15 13:20
>
re: 技巧:使用User Control做HTML生成
@miao~
看我的js是怎么写的
- Jeffrey Zhao 2008-07-15 13:13
>
re: 技巧:使用User Control做HTML生成
@clefoo
但是老赵那个href 没有加 void(0) 啊....
怎么能让它只执行 onClick 而保留 href 里的并不跳转呢?
- miao~ 2008-07-15 13:10
>
re: 技巧:使用User Control做HTML生成
@miao~
在href是要加上void(0);
@Jeffrey Zhao
可以运行
- clefoo 2008-07-15 12:49
>
re: 技巧:使用User Control做HTML生成
有个问题,为什么我做的时候 点下一页的时候 如果
<a href="/ViewItem.aspx?page=<%= this.PageIndex - 1 %>" title="上一页"
onclick="return getComments(<%= this.PageIndex - 1 %>);">上一页</a>
就不会执行 onclick 而是直接 跳转到 ViewItem.aspx?page=2
而要是把 href="javascript:void(0)" 就可以执行 onclick 了....
prototype 不熟..用 Jquery 改了下
function getComments(pageIndex)
{
$.get("GetComments.ashx",{page:pageIndex,t:new Date()},function(data){$("#comments").html(data)});
}
不知道其他的朋友有没有类似的问题?
- miao~ 2008-07-15 12:06
>
re: 技巧:使用User Control做HTML生成
@clefoo
能运行么?
- Jeffrey Zhao 2008-07-15 11:51
>
re: 技巧:使用User Control做HTML生成
@Jeffrey Zhao
就是你的那个事例改了下。
userControl生成html
- clefoo 2008-07-15 08:59
>
re: 技巧:使用User Control做HTML生成
@clefoo
没看懂,你这个东西是做什么用的?
- Jeffrey Zhao 2008-07-15 01:09
>
re: 技巧:使用User Control做HTML生成
protected void Page_Load(object sender, EventArgs e)
{
StringWriter output = new StringWriter();
top s=(top)this.LoadControl("top.ascx");
this.Controls.Add(s);
HttpContext.Current.Server.Execute(this, output, false);
Response.Write(output.ToString());
}
HttpContext.Current.Server.Execute(this, output, false);
这句是不是可以省略不要了(top是UserControl)
- clefoo 2008-07-15 01:02
>
re: 技巧:使用User Control做HTML生成
@matta
不说优不优,没有觉得这个东西哪里差了阿,呵呵。
- Jeffrey Zhao 2008-07-14 20:25
>
re: 技巧:使用User Control做HTML生成
一定要这样才行吗,没有更优的了?
HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
- matta 2008-07-14 17:06
>
re: 技巧:使用User Control做HTML生成
@matta
没看出有什么问题来
- Jeffrey Zhao 2008-07-14 16:53
>
re: 技巧:使用User Control做HTML生成
其实比较贴切的说,是指你的
HttpContext.Current.Server.Execute(this.m_pageHolder, output, false);
其实不用这样的开销.
- matta 2008-07-14 16:44
>
re: 技巧:使用User Control做HTML生成
@singleblue
没法用Control的。
- Jeffrey Zhao 2008-07-14 09:38
>
re: 技巧:使用User Control做HTML生成
这边的m_pageHolder,如果用Control来代替,效率是否能高一点点?
- singleblue 2008-07-14 08:53