0
我有一個想CheckboxList
在ASP.NET這是我使用的東西轉換爲TreeView
像jsTree。這可能嗎?節點嵌套深達四個級別複選框列表裏面複選框列表。是否有可能神奇地將它們變成TreeView
,或者我需要在代碼隱藏中整天與JS一起修補嗎?的CheckBoxList的TreeView
我有一個想CheckboxList
在ASP.NET這是我使用的東西轉換爲TreeView
像jsTree。這可能嗎?節點嵌套深達四個級別複選框列表裏面複選框列表。是否有可能神奇地將它們變成TreeView
,或者我需要在代碼隱藏中整天與JS一起修補嗎?的CheckBoxList的TreeView
假設你可以計算出「深度」每一個節點,你可以將下面的代碼添加到的OnPreRender並會顯示您的項目層次:
protected void overrided OnPreRender()
{
lstItems.Items.Do(a=>
{
var item = // get item from a.Value
for(var i = 0; i< item.Depth; i++)
{
a.Text = "<span class='spacer'></span>" + a.Text;
}
});
}
,並添加以下規則將樣式表:
span.spacer { width:20px; }
但如果你想有摺疊/展開功能,您將需要添加,我不會在這裏包括一些JavaScript操作(也保持簡單)
P.S.添加到lstItems的項目是基於層次結構正確排序的,這一點很重要。解決方案,我建議是使用下面的方法爲您的數據源的排序關鍵字:
public string GetFullPath()
{
if(Parent == null) return Key;
return Parent.GetFullPath() + ">" + Key;
}
其中,key是一個獨特的領域(在一個單親的情況下)。 - 它可以是名稱,順序等。
有趣的選項,但我最終與RadTreeView一起去。它爲最少量的工作提供了最大的靈活性(可惜不是免費的) – Echilon
是的,不是免費的,這是我採用這種方法的主要原因。雖然如果你實現了這一次(作爲擴展方法或其他),你可以永遠使用它。 –