天天看點

TreeView結合UpdatePanel使用時,SelectedNodeStyle不生效的解決方案

在某些時候,使用UpdatePanel可以極大的提升開發效率并且獲得比較好的使用者體驗,尤其是做SharePoint開發時。老早就看過MSDN上申明UpdatePanel對TreeView不支援,前段時間在使用時,果然不行,比如選擇了某節點但是選擇樣式壓根就不起作用。但是我一向是有問題就解決問題,沒問題找問題,抱着這種心态,總算解決了該問題。下面說下解決方案吧:

背景代碼如下:

從上面可以看出,關鍵代碼在背景注冊JS,其中 $('#'+" + tv_Orgs.ClientID + @"_Data.selectedNodeID.value).parent().addClass('SelectedNodeStyle');是比較重要的,這個“tv_Orgs.ClientID + @"_Data.selectedNodeID.value”,是在TreeView向用戶端注冊的js中找出來的,是用來擷取選擇節點的ID,有興趣的可以看看微軟有關TreeView的JS,沒壓縮的。

這裡順便說下,UpdatePanel結合Menu時,也會存在問題,比如菜單顯示不出來,這個原因是Menu菜單的JS未注冊,可以先移除UpdatePanel,找出Menu注冊JS的那幾個連結,然後手動加到頁面上即可。

在UpdatePanel中使用某些控件時,你可能會遇到很多雜七雜八的問題,遇到了請不要慌,其實仔細琢磨下,都是有解決方案的。

說幾個感受:

有問題并不可怕,可怕的是沒有解決方案。

很多背景解決不了或者很難解決的問題,使用前台JS卻很容易搞定。

多一項技能,有時候就是多一條活路。多會一門語言,有時候就是多打開一扇了解的天窗。

繼續閱讀