TreeView的RenderControl的问题

TreeView,这东西,正常情况下一般是不用的,不过我们的美工,没弄个树型的样式出来,没折,将就用一下TreeView了
说重点:
环境搭建:一页面,拖一下TreeView控件上去,随便添加几个项。
然后Page_Load事件里输出:
         


   System.IO.StringWriter sw = new System.IO.StringWriter();
            HtmlTextWriter write = new HtmlTextWriter(sw);
            TreeView1.RenderControl(write);
            if (sw != null)
            {
                Response.Write(sw.ToString());
            }
public override void VerifyRenderingInServerForm(Control control)
        {
            //不引发"控件必须放在具有 runat=server 的窗体标记内“验证
        }
        public override bool EnableEventValidation
        {
            get
            {
                return false;//解决因RenderControl引发的异常
            }
        }

然后查看页面源文件,发现RenderControl出来的html和自动生成的html是不一样的,主要区别在于折叠的js事件中


关键点来了,为了回调更新TreeView的内容,却发现拿出来的RenderControl的html的代码是有问题的,几经折腾,先绕过了RenderControl,直接抓页面源码,再正则了。这时候,也有一个折腾人的地方,如果请求头没有User-Agent,抓回来的也是和RenderControl输出的一样。
目前是没折的处理方法,抓页面源码再正则进行中。。。。

到于RenderControl为啥输出的和页面直接加载的不一样。。还有待研究。。。知道的说一声

版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:http://www.cnblogs.com/cyq1162/archive/2009/07/20/1527173.html

时间: 2024-09-27 09:55:23

TreeView的RenderControl的问题的相关文章

如何使TreeView导航控件在选中节点跳转到对应页面时不刷新TreeView控件?求解...

问题描述 在一个页面中有一个TreeView控件,当选中对应的节点时根据路径跳转到对应的页面,这样在跳转页面的同时TreeView控件也存在刷新的过程,请大家各位帮帮忙. 解决方案 解决方案二:使用局部刷新,updatepannel,将TreeView控件放到里面解决方案三:一个变态的方法,慎用!包含Treeview控件的部分用一个iframe替换,同时此iframesrc="ChannelTree.aspx"<iframeid="TreeView"frame

c# TreeView CheckBoxes与Image的距离问题

问题描述 WinForms开发中,我设置TreeView显示CheckBoxes=true则它会在节点前显示CheckBox,同时我再设置它的Image,这时,节点的CheckBox与Image之间的距离很短,几乎是靠在一起的不美观,我想设置CheckBox与Image之间的距离,留一些空隙.但是一直找不到属性,在哪里设置请大家帮忙 解决方案 解决方案二:看看TreeView的样式能不能设置

DELPHI中利用TreeView控件建立目录树

关于TreeView的使用,还可以参看:联合使用TreeView 组件 TreeView是一个显示树型结构的控件,通过它能够方便地管理和显示具有层次结构的信息,是Windows应用程序的基本控件之一.DELPHI虽然具有比较强大的文件管理功能,提供了多个用于文件管理的标准控件,如DriveComboBox.DirectoryListBox.FileListBox等,通过设置它们的属性,使其建立起联系,甚至不用编写一行程序,我们就可以实现在不同的目录之间进行切换,然而这样的目录切换只适用于进行文件

VB6将XML数据传入TreeView控件

treeview|xml|控件|数据 由于XML文档是以树形结构为格式,所以通常采用TreeView控件显示它们.以下码段说明了如何在Visual Basic 6将XML文档传入一个TreeView控件. 首先,建立一个新的带有窗体的Visual Basic 6工程,然后在窗体中添加一个TreeView控件,并添加一个引用到微软XML解析器. 接着,在Form_Load事件中添加如下的代码:   Private Sub Form_Load()Dim objDOM As DOMDocument S

创建可编辑的xml文档(之一)绑定xml文档到treeview 控件

treeview|xml|创建|控件 目录:    介绍    绑定xml文档到treeview 控件    过滤xml 数据    执行拖放操作    执行删除,改名,插入操作    使用中的treeview 控件   通过xml 和xpath 你可以毫不费力的为你的treeview控件增加拖放甚至更多的功能-by Alex Hildyard   最近,我一直在开发一个用来维护在线目录的用户界面工具,因为这个目录包含太多的产品,所以用一些方法对他们分类是很有意义的.目录管理员将需要有删除和定义

创建可编辑的xml文档(之五)执行中的treeview 控件

treeview|xml|创建|控件|执行 执行中的treeview 控件  为了更完美,列表4包含了VB.NET version, or C# version 两个版本的最终treevie 控件.为了更容易使用,我重新定义了结构和代码.同时增加了KeyDown 控制来支持一些默认的快捷键例如:Control-N (新建), F2 (编辑), 和DEL (删除).  这里好象不必附加任何事件,因此最终的api 包含一个方法和八个属性,他们在表1中列出来了,他们大多数都是简单的标志,或者默认的开关

使用多线程加载多个Xml文件到TreeView控件

treeview|xml|多线程|加载|控件 在很多情况下程序员需要采用多线程来开发应用程序,用户可以在前台操作数据或其他工作,在后台程序正在加载很大的一些文件,而这一过程不会影响到前台的用户.在这篇文章中,我来讲述一下怎样通过多个线程来加载多个文件.在这个例子中我们将来研究这样一件事情,读取多个Xml文件并通过TreeView把它们显示出来.我们可以通过数据库来完成,不过为了保持例子的简单这里采用了Xml文件. 你会注意到我们有两个xml文件同原代码放在一起.程序用户界面如下: Filedis

RSS阅读器制作之将TreeView数据导出为XML数据发表日期:2006-11-30

rss|treeview|xml|数据 //递归遍历节点内容,最关键的函数 private void parseNode(TreeNode tn) { IEnumerator ie = tn.Nodes.GetEnumerator(); while (ie.MoveNext()) { TreeNode ctn = (TreeNode) ie.Current; //为最底层节点,即该节点为RSS节点 if (ctn.GetNodeCount(true) == 0) { xmlLine = GetR

RSS阅读器制作之将TreeView数据导出为XML数据

rss|treeview|xml|数据 //递归遍历节点内容,最关键的函数 private void parseNode(TreeNode tn) { IEnumerator ie = tn.Nodes.GetEnumerator(); while (ie.MoveNext()) { TreeNode ctn = (TreeNode) ie.Current; //为最底层节点,即该节点为RSS节点 if (ctn.GetNodeCount(true) == 0) { xmlLine = GetR