天天看點

TreeView的RenderControl的問題

treeview,這東西,正常情況下一般是不用的,不過我們的美工,沒弄個樹型的樣式出來,沒折,将就用一下treeview了

說重點:

環境搭建:一頁面,拖一下treeview控件上去,随便添加幾個項。

然後page_load事件裡輸出:

TreeView的RenderControl的問題
TreeView的RenderControl的問題

   system.io.stringwriter sw = new system.io.stringwriter();

TreeView的RenderControl的問題

            htmltextwriter write = new htmltextwriter(sw);

TreeView的RenderControl的問題

            treeview1.rendercontrol(write);

TreeView的RenderControl的問題

            if (sw != null)

TreeView的RenderControl的問題

            {

TreeView的RenderControl的問題

                response.write(sw.tostring());

TreeView的RenderControl的問題

            }

TreeView的RenderControl的問題

public override void verifyrenderinginserverform(control control)

TreeView的RenderControl的問題

        {

TreeView的RenderControl的問題

            //不引發"控件必須放在具有 runat=server 的窗體标記内“驗證

TreeView的RenderControl的問題

        }

TreeView的RenderControl的問題

        public override bool enableeventvalidation

TreeView的RenderControl的問題
TreeView的RenderControl的問題

            get

TreeView的RenderControl的問題
TreeView的RenderControl的問題

                return false;//解決因rendercontrol引發的異常

TreeView的RenderControl的問題
TreeView的RenderControl的問題

然後檢視頁面源檔案,發現rendercontrol出來的html和自動生成的html是不一樣的,主要差別在于折疊的js事件中

關鍵點來了,為了回調更新treeview的内容,卻發現拿出來的rendercontrol的html的代碼是有問題的,幾經折騰,先繞過了rendercontrol,直接抓頁面源碼,再正則了。這時候,也有一個折騰人的地方,如果請求頭沒有user-agent,抓回來的也是和rendercontrol輸出的一樣。

目前是沒折的處理方法,抓頁面源碼再正則進行中。。。。

到于rendercontrol為啥輸出的和頁面直接加載的不一樣。。還有待研究。。。知道的說一聲

繼續閱讀