在實際項目中,,遇到一個問題,首先彈出一個新窗口,,新窗口中放了一個TreeView控件,,TreeView控件的數(shù)據綁定在我的上一篇隨筆(TreeView綁定XML數(shù)據源C#代碼示例)中有講到,現(xiàn)在要解決的是,,如何單擊TreeView中一個節(jié)點,,返回Text和Value到父頁面并關閉該新窗口。 首先,,在后臺代碼中為TreeView添加屬性onclick以支持TreeView的客戶端事件,,代碼如下: if (!IsPostBack) 那現(xiàn)在就要解決如何通過js獲得TreeView中被選中的那個節(jié)點,腳本如下: function ReturnValue() { 其實這里用了點小花招,,因為我實在不知道在哪個屬性里能獲得綁定給TreeView的ValueField的值,,所以,Value值我一并綁給了NavigateUrl,,也就是寫黃色部分代碼的原因,,Html代碼如下: <asp:TreeView ID="TreeView1" runat="server" ExpandDepth="1"> 紅色部分代碼是用來獲取TreeView上顯示文字的,因為如果你去查看源文件的話,,你會發(fā)現(xiàn),,TreeView的Text屬性值被放在了SPAN中。 綠色部分代碼是用來回填父頁面的,,但是要注意的是,,"txtUnit"必須是客戶端控件,因為如果是服務器端控件,,彈窗在編譯時會報不存在該控件,。 這樣,我需要的功能就實現(xiàn)了,!另外,,有人可能會說,父頁面中用來裝載回填值的是客戶端控件,,那如果要在服務器事件中使用怎么辦,?也很簡單,,C#代碼如下: Request.Form["txtUnit"].ToString(); 但是要注意了,,這里的"txtUnit"可不是控件ID,而是name屬性了,! |
|