c# - asp.net: TreeView - 如果选中则显示文本框?

标签 c# javascript jquery asp.net

我需要向用户显示字符串列表。用户可以选择多个字符串。如果选择了一组特定的字符串,每个字符串旁边将出现一个文本框。

我想要做的是向用户显示一个 TreeView ,每个节点都是字符串之一。他们将通过选中该框来选择他们想要的每个字符串。

问题: 如果用户选择特定的复选框,我需要一个文本框来显示以获取用户的输入。

问题:如何使用 TreeView 从用户那里获取字符串输入?

最佳答案

TreeView 本身不支持包含文本框。您可以使用 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]

未经测试,但希望是一个有用的开始。

关于c# - asp.net: TreeView - 如果选中则显示文本框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679986/

相关文章:

c# - 向 C# 列表索引器添加编译时安全性 - 这可能吗?

javascript - 文本区域的 ckeditor 默认样式或类

javascript - 尝试使用 .innerHTML 呈现内容时,如何过滤除 b、u 和 i 之外的所有其他标签

javascript - 如何在 zclip 插件中使用 live 方法?

javascript - 如何在alert中打印数组数据

javascript - 清除ajax调用上的图表数据

javascript - jquery 事件已记录。它是如何工作的?

c# - 无需身份验证即可解码签名请求

c# - 当测试并行运行时,FakeItEasy 有时无法创建假货

c# - 美国电话格式需要正则表达式