c# - 禁用 ASP.net TreeView 复选框

标签 c# javascript asp.net checkbox treeview

你们如何有条件地禁用 asp TreeView 中的复选框?

例如,如果应用程序用户没有特定权限,请在权限 TreeView 中禁用该权限条目复选框。

这就是我要找的东西,这是 winform 应用程序中的等价物(文本变灰时复选框被禁用):

enter image description here

我看到其他解决方案拦截并忽略了复选框上的点击事件。我更喜欢将复选框简单地设置为禁用的解决方案。

我正在寻找 C# 解决方案,但我会对 C#/Javascript 解决方案感到满意。

谢谢!

最佳答案

好的,找到了一个相当干净的解决方案:

在代码隐藏中:

TreeNode newNode = new TreeNode(permission.ToString());
newNode.SelectAction = TreeNodeSelectAction.None; // no Link

    if (shouldDisableCheckbox)
    {
        // Set a class so disabled nodes can be formatted thru CSS
        // and be identifiable as disabled in Javascript.
        newNode.Text = "<span class=disabledTreeviewNode>" + newNode.Text +"</span>";
    }

nodes.Add (newNode);

在 Javascript 中,扫描所有具有该类名的 TreeView 节点并禁用与其关联的复选框:

    // Called via a startup script created in Code Behind.
    // Disables all treeview checkboxes that have a text with a class=disabledTreeviewNode.
    // treeviewID is the ClientID of the treeView
    function DisableCheckBoxes(treeviewID)
    {
        TREEVIEW_ID = treeviewID;

        var treeView = document.getElementById(TREEVIEW_ID);

        if (treeView)
        {
            var childCheckBoxes = treeView.getElementsByTagName("input");
            for (var i = 0; i < childCheckBoxes.length; i++)
            {
                var textSpan = GetCheckBoxTextSpan(childCheckBoxes[i]);

                if (textSpan.firstChild)
                    if (textSpan.firstChild.className == "disabledTreeviewNode")
                        childCheckBoxes[i].disabled = true;
            }
        }
    }

function GetCheckBoxTextSpan(checkBox)
{
    // Set label text to node name
    var parentDiv = checkBox.parentNode;
    var nodeSpan = parentDiv.getElementsByTagName("span");

    return nodeSpan[0];
}

关于c# - 禁用 ASP.net TreeView 复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15078476/

相关文章:

c# - 从 ASP.NET 批量打印 PDF

c# - 是否可以更改 C# 项目的版本格式?

c# - WinForms C# .Net 4.0 中的功能区

javascript - react native - nativeEvent 属性?

javascript - Response.Redirect Word 文档故障?

c# - 在 UpdatePanel 之外更改 TextBox 中的文本

c# - 如何使用 OpenXML SDK 2.5 从 word 文档中复制公式?

c# - 向 XNA 游戏添加类似输入框的控件

javascript - Ajax 长轮询问题(网关 504)

javascript - JS不支持firefox 15.0