【问题标题】:Allow checkbox to be disabled in Firefox允许在 Firefox 中禁用复选框
【发布时间】:2012-07-06 02:13:34
【问题描述】:

所以我现在正在处理跨浏览器代码。我有复选框,在调用某些函数后禁用,在 IE 中但在 Firefox 和 Chrome 中没有。

我查看了代码,发现在 Firefox 中呈现时,禁用的标签被放置在 td 上,这就是它在 IE 中而不是其他浏览器中工作的原因。

在 asp.net 中有没有办法禁用单元格或复选框并让它在 Firefox、Chrome 等中正确呈现?

这是我的函数,其中启用 = false

protected void FilterCheckBox(object sender, ASPxGridViewTableCommandCellEventArgs e)
{
    if (ExecContractGridView != null)
    {
        try
        {
            if (ExecContractGridView.GetRowValues(e.VisibleIndex, "UnionExecutedBy") != null)
            {
                if (!string.IsNullOrEmpty(ExecContractGridView.GetRowValues(e.VisibleIndex, "UnionExecutedBy").ToString()))
                {
                    e.Cell.Enabled = false;
                }
            }
        }
        catch (Exception ex)
        {
            ApplicationLog.Exception(this, ex);
        }
    }
}

【问题讨论】:

    标签: c# asp.net cross-browser


    【解决方案1】:

    要正确执行此操作,您需要找到复选框控件并设置disabled = "disabled"

    您可以使用 JavaScript 或 jQuery 等库在客户端执行此操作。或者,在上面的代码中,一旦有了e.Cell,您就可以找到CheckBox 控件并将其设置为Enabled = false

    为了进一步澄清,e.Cell 包含一个CheckBox 控件作为其子控件之一。所以你可以这样做:

    var control = e.Cell.FindControl("SomeCheckBoxControl") as CheckBox;
    if (control != null)
        control.Enabled = false;
    

    【讨论】:

    • 我不是 100% 关注.. 你能解释一下吗?
    • 谢谢,现在只需要找到复选框名称。我继承了这段代码,在我的设计视图中,我只看到一个网格视图,当我在 Chrome 中检查元素时,它给了我一个很大的名字切换每一行
    • 您需要查看 ASPX 代码以确定调用的控件。或者,如果您正在查看 Chrome 中的元素,请尝试仅使用损坏名称的结尾。这将是最后一个 $ 字符之后的最终文本。
    • 我的输入的 ID 为 ctl00_middleContent_ExecContractGridView_DXSelBtn## 没有名字
    • 你需要在 ASPX 中命名它。
    猜你喜欢
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 2017-07-15
    • 1970-01-01
    • 2018-03-26
    • 1970-01-01
    • 2016-05-22
    • 1970-01-01
    相关资源
    最近更新 更多