【问题标题】:Greying out a button from code-behind does not work in IE从代码隐藏中灰显按钮在 IE 中不起作用
【发布时间】:2011-04-08 23:08:22
【问题描述】:

我在一个页面上有两个下拉列表。行为如下:

  1. 选择列表 1 中的内容
  2. 列表 2 已启用
  3. 选择列表 2 中的内容
  4. 按钮已启用

我正在执行上述操作,并在下拉列表中启用了自动回发。要切换按钮,我使用以下代码:

if (ddlAvailablePrograms.SelectedValue != string.Empty)
{
     careerInfoLearnMoreSubmit.Enabled = true;
     careerInfoLearnMoreSubmit.Style.Remove("opacity");
     careerInfoLearnMoreSubmit.Style.Add("opacity", "1.0;");
}
else
{
     careerInfoLearnMoreSubmit.Enabled = false;
     careerInfoLearnMoreSubmit.Style.Remove("opacity");
     careerInfoLearnMoreSubmit.Style.Add("opacity", "0.5;");
}

这在 Firefox 中运行良好,但在 IE 中,只要我在第一个下拉列表中进行选择,按钮就会失去其灰色样式。

有什么建议可以在 IE 中解决这个问题吗?

谢谢,
b3n

【问题讨论】:

    标签: asp.net css internet-explorer code-behind


    【解决方案1】:

    不透明度 CSS 样式在 Internet Explorer 中存在已知问题。

    尝试将此添加到您的 CSS 样式表中,而不是添加内联样式,而是添加一个类:

    .opaque {
        -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"; 
        filter: alpha(opacity=50);                  
    }
    

    顺序必须与上面完全相同。

    此技术在此处显示/使用:http://www.quirksmode.org/css/opacity.html

    另外,我听说使用 jQuery 来应用不透明度是理想的,因为 jQuery 处理所有跨浏览器问题。这是一个选项吗?

    【讨论】:

    • 感谢使用课程。问题是样式最初是使用 javascript 设置的。在第一个下拉列表导致更新面板重新加载后,IE 的样式丢失了,因为我使用的内联样式不起作用。我修改了我的代码以检查浏览器是否是 IE,如果是,它现在使用类,如果它的 firefox,我使用旧的内联样式。效果很好。
    猜你喜欢
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多