高分问题:如何动态把客户端控件替换为服务器端的控件! 在一个网页中如果有许多的客户端的控件,我怎么替换为对应的服务器段控件!这个服务器端的控件的位置、样式都不变,解决了给200分 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 既然你要把它作为server控件。为什么不一开始就指定为runat=server呢? 不好解决。试试以下两种办法:一种是通过正则表达式进行替换。对于每一个要替换的html元素都使用写一条替换表达式,然后分次进行替换。另一种办法:先把这个网页解析了xml,然后分析这个xml文件后得先生成新的。遇到要替换的元素则进行替换,不替换则进行copy就行了。其实这个方法很好,问题是把网页解析了xml可以不好做 第二种方法中把html解析了xml的方法介绍:http://www.ftponline.com/china/XmlFile.aspx?ID=251 最笨的方法是打开aspx文件,把需要的地方加上runat=server再覆盖原文件保存。程序用流方式读入。不过烦点。 解析HTML文件,用正则表达式,遇到需要替换的控件,则生成对应的服务器端控件,然后将对应的属性,样式加上!以前做过一个,不过一开始很烦,而且你必须对Html文件加一些控制,否则真的很麻烦:) 不好办啊,不过可以试试:如果是我的话,直接读源文件的数据流然后对原文件的数据流进行分析,然后在替换StringBuilder htmltext=new StringBuilder(); try { StreamReader sr = new StreamReader("d:\\qiye1.htm",System.Text.Encoding.GetEncoding("gb2312")); String line; while ((line = sr.ReadLine()) != null) { htmltext.Append(line); } sr.Close(); } catch { Response.Write("<Script>alert('读取文件错误')</Script>"); }读出来以后,然后对sr进行分析,替换,最后在重新生成:try { string path=Server.MapPath("../"+Session["diqu"].ToString()+"/"+Session["shixian"].ToString()+"/"+Session["username"].ToString()+"/qy2.html"); StreamWriter sw=new StreamWriter(path,false,System.Text.Encoding.GetEncoding("gb2312")); sw.WriteLine(htmltext); sw.Flush(); sw.Close(); } catch(Exception ex) { Response.Write (ex.Message); }中间的路径我没改,代码是我原来的,不想改了 一种是通过正则表达式进行替换。对于每一个要替换的html元素都使用写一条替换表达式,然后分次进行替换。另一种办法:先把这个网页解析了xml,然后分析这个xml文件后得先生成新的。遇到要替换的元素则进行替换,不替换则进行copy就行了。其实这个方法很好,问题是把网页解析了xml可以不好做 to saucer:相当于操作模板,所以每次都转换! 不见得需要重新编译,只是需要分析HTML,然后依样生成对应的服务器控件,但没必要每次请求都这么做,所以我建议你自己看一下自己的要求,一次做成用户控件最好,参考ASP.NET Page Templates..... http://blogs.msdn.com/alowe/archive/2003/01/31/258.aspx 用PlaceHolder吧, 跟据请求在控件上new 一个控件出来在设置属性 控件上new一个后和你模板性设置一样就行了啊不过处理按扭事件的就有点麻烦了你这么做目地是什么?没必要吧 .net下调用存储过程插入多个参数 请高手赐教 update 语句怎么不能更新数据库中的值呢 路过的各位大哥请进来看看,VS新建网站程序,在"源"视图下无法编辑代码 纠结老的小问题 怎么把打开的页面通过邮件形式进行发送 将文本框设置为Password,为什么就没有办法赋值了???? BASE64解码出现乱码 大家用什么编辑ASP.NET APS.NET中javascript的验证弹框问题 小弟有一问题,很难解决,请高手指教 (高分想送) 要在textbox里显示URL连接与图片 为什么一启用“片断缓存”就会报错??
试试以下两种办法:
一种是通过正则表达式进行替换。对于每一个要替换的html元素都使用写一条替换表达式,然后分次进行替换。
另一种办法:先把这个网页解析了xml,然后分析这个xml文件后得先生成新的。遇到要替换的元素则进行替换,不替换则进行copy就行了。其实这个方法很好,问题是把网页解析了xml可以不好做
程序用流方式读入。不过烦点。
以前做过一个,不过一开始很烦,而且你必须对Html文件加一些控制,否则真的很麻烦:)
然后对原文件的数据流进行分析,然后在替换StringBuilder htmltext=new StringBuilder();
try
{
StreamReader sr = new StreamReader("d:\\qiye1.htm",System.Text.Encoding.GetEncoding("gb2312"));
String line;
while ((line = sr.ReadLine()) != null)
{
htmltext.Append(line);
}
sr.Close();
}
catch
{
Response.Write("<Script>alert('读取文件错误')</Script>");
}读出来以后,然后对sr进行分析,替换,最后在重新生成:try
{
string path=Server.MapPath("../"+Session["diqu"].ToString()+"/"+Session["shixian"].ToString()+"/"+Session["username"].ToString()+"/qy2.html");
StreamWriter sw=new StreamWriter(path,false,System.Text.Encoding.GetEncoding("gb2312"));
sw.WriteLine(htmltext);
sw.Flush();
sw.Close();
}
catch(Exception ex)
{
Response.Write (ex.Message);
}
中间的路径我没改,代码是我原来的,不想改了
另一种办法:先把这个网页解析了xml,然后分析这个xml文件后得先生成新的。遇到要替换的元素则进行替换,不替换则进行copy就行了。其实这个方法很好,问题是把网页解析了xml可以不好做
http://blogs.msdn.com/alowe/archive/2003/01/31/258.aspx
不过处理按扭事件的就有点麻烦了
你这么做目地是什么?没必要吧