簡體   English   中英

asp.net:treeview - 如果選中則顯示文本框?

[英]asp.net: treeview - show textbox if checked?

我需要向用戶顯示字符串列表。 用戶可以選擇多個字符串。 如果選擇了一組特定的字符串,則每個字符串旁邊都會出現一個文本框。

我想要做的是向用戶顯示一個TREEVIEW,每個節點都是其中一個字符串。 他們會通過勾選方框選擇他們想要的每個字符串。

問題:如果用戶選擇特定的復選框,我需要一個文本框來顯示來自用戶的GET輸入。

問題 :如何通過樹視圖從用戶獲取字符串輸入?

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]

未經測試,但希望是一個有用的開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM