TreeView本身不支持包括TextBoxes。您可以使用JavaScript解決方案創建客戶端文本框並將值映射序列化爲<asp:HiddenField />
。
設置您的TreeView和HiddenField:
<asp:TreeView runat="server"
ID="MyTreeView"
ShowCheckBoxes="All"
NodeStyle-CssClass="node">
...
</asp:TreeView>
<asp:Hidden runat="server" ID="TreeViewTextValues" />
一些jQuery的:
$(".node :checkbox").click(function (e) {
var node = $(this).closest(".node");
if (this.checked) {
$("<input/>").addClass("nodeTextBox").appendTo(node);
}
else {
node.find("input.nodeTextBox").remove();
}
});
$("form").submit(function (e) {
var nodeText = $("input.nodeTextBox").map(function() {
return encodeURIComponent(this.value);
});
$("input[type=hidden][id$=TreeViewTextValues]").val(nodeText.join("&"));
});
一些C#:
var text = TreeViewTextValues.Value.Split('&').Select(s => Server.UrlDecode(s));
// text.ElementAt(n) maps to MyTreeView.CheckedNodes[n]
未經檢驗的,但希望有幫助的開始。
我不明白這是否提到樹視圖是唯一的網頁?我的意思是你爲什麼不把它放在別的地方呢?另外,我認爲ListView更適合這個工作,甚至是一個ListBox。 – Bastardo
@AteşGÜRAL:感謝您的建議,但是用戶可以編輯嗎? –
那麼,你可以使用該文本框(即將出現的那個)。即使該文本框是爲了別的東西,你可以使用一個常量文本框,當列表框的selecteditem改變時獲得ListBox的selectedItem然後寫你想要的和點擊一個按鈕並保存它。我在我的項目中做了這個。我認爲TreeView是爲分類數據創建的,這就是爲什麼我建議使用ListBox或ListView。 – Bastardo