C# 必须单击两次才能在ASP.NET中展开DropDownList

C# 必须单击两次才能在ASP.NET中展开DropDownList,c#,.net,asp.net,drop-down-menu,C#,.net,Asp.net,Drop Down Menu,我继承了一个ASP.NET 2.0项目,我注意到的一件事是,用户必须单击dropdownlist两次才能展开它-为什么 事件顺序 第一次单击提供控件焦点,第二次单击将扩展控件焦点 该应用程序使用母版/内容页,并且支持Ajax 看起来这在IE6中不会发生,但在IE7中确实会发生。不知道这是不是最好的解决方案,而且还没有尝试过。。但是将onload()上的焦点设置到所讨论的控件如何?不知道这是不是最好的解决方案,而且还没有尝试过。。但是将onload()上的焦点设置到相关控件如何?如果您使用IE7并

我继承了一个ASP.NET 2.0项目,我注意到的一件事是,用户必须单击
dropdownlist
两次才能展开它-为什么

事件顺序

  • 第一次单击提供控件焦点,第二次单击将扩展控件焦点
  • 该应用程序使用母版/内容页,并且支持Ajax

  • 看起来这在IE6中不会发生,但在IE7中确实会发生。

    不知道这是不是最好的解决方案,而且还没有尝试过。。但是将onload()上的焦点设置到所讨论的控件如何?

    不知道这是不是最好的解决方案,而且还没有尝试过。。但是将onload()上的焦点设置到相关控件如何?

    如果您使用IE7并将onFocus事件用于这些下拉列表,请查看以下内容:

    否则,我建议您看看:

  • 是否正在调用服务器onFocus,其中IsPostBack在页面加载时未正确处理?
  • 为任何其他想法画空白


    你能提供一些代码让我们看一下吗?

    如果你正在使用IE7并在这些下拉列表中使用onFocus事件,请看以下内容:

    否则,我建议您看看:

  • 是否正在调用服务器onFocus,其中IsPostBack在页面加载时未正确处理?
  • 为任何其他想法画空白


    你能提供一些代码让我们看一下吗?

    下拉事件中是否填充了下拉数据?如果是这样,一个简单的解决方法是在数据加载结束时将下拉状态设置为True。

    是否在on下拉事件中填充下拉数据?如果是这样,一个简单的解决方法是在数据加载结束时将下拉状态设置为True。

    找到它并对其进行排序(目前)

    问题是由usercontrol插入的Javascript函数引起的,该函数正在向DropDownList添加样式。为什么不在CSS中执行此操作我不知道(但很快就会知道),但注释以下函数解决了我的问题:

        function inputOnFocus(objInput)
        {
            objInput.style.backgroundColor = sHighLightBgColor;
            objInput.style.border = sBorderHighlight;
    
            //objInput.className = "inputOnFocus";
            sIDWithFocus = objInput.id;
        }
    
    我不太清楚这是如何/为什么应用于某些DDL的,而不是其他DDL,但目前(随着客户演示即将到来),我真的不在乎——我会在有机会的时候深入研究

    感谢@LFSR Consulting、@Scott Evernden和@kogus的支持。

    找到了它并对它进行了排序(目前)

    问题是由usercontrol插入的Javascript函数引起的,该函数正在向DropDownList添加样式。为什么不在CSS中执行此操作我不知道(但很快就会知道),但注释以下函数解决了我的问题:

        function inputOnFocus(objInput)
        {
            objInput.style.backgroundColor = sHighLightBgColor;
            objInput.style.border = sBorderHighlight;
    
            //objInput.className = "inputOnFocus";
            sIDWithFocus = objInput.id;
        }
    
    我不太清楚这是如何/为什么应用于某些DDL的,而不是其他DDL,但目前(随着客户演示即将到来),我真的不在乎——我会在有机会的时候深入研究


    感谢@LFSR Consulting、@Scott Evernden和@kogus的支持。

    我知道我发布的是一条旧帖子;然而,我想分享我的两分钱在这方面,因为它可能会帮助任何人在未来

    我最近正在制作一个快速表单,希望突出显示用户将使用黄色进入的所有字段,当焦点丢失时,显然会返回白色

    由于我不是在使用ASP.NET,所以不必深入讨论代码,只需使用javascript部分……我所做的补救措施是为onmousedown创建另一个事件。只要有onfocus部分,我就必须在下拉框中单击两次。设置焦点后,单击另一个按钮并列出项目。通过添加onmousedown函数,它允许我的颜色在单击时发生变化,也允许选项卡或其他形式的焦点转移


    当然,没有必要有一个对应的,因为onblur负责它(onfocus的对应物)。

    我知道我是在一个旧的线程上发布的;然而,我想分享我的两分钱在这方面,因为它可能会帮助任何人在未来

    我最近正在制作一个快速表单,希望突出显示用户将使用黄色进入的所有字段,当焦点丢失时,显然会返回白色

    由于我不是在使用ASP.NET,所以不必深入讨论代码,只需使用javascript部分……我所做的补救措施是为onmousedown创建另一个事件。只要有onfocus部分,我就必须在下拉框中单击两次。设置焦点后,单击另一个按钮并列出项目。通过添加onmousedown函数,它允许我的颜色在单击时发生变化,也允许选项卡或其他形式的焦点转移


    当然,没有必要有一个对应的,因为onblur处理了它(onfocus的对应项)。

    感谢您的建议,但它不是一个初学者,因为SetFocus只能在预渲染之前和期间调用(显然)。感谢您的建议,但它不是初学者,因为SetFocus只能在预渲染之前和期间调用(显然)。他使用的是ASP.NET,而不是WinForm。她使用的是ASP.NET,而不是WinForms。由于代码在母版页、内容页和用户控件之间被拆分,所以代码有点杂乱无章。我刚刚在现有页面上添加了一个DDL,并手动添加了几个项目(根本没有事件处理),而且还需要单击两下才能将其展开-(由于代码在母版页、内容页和用户控件之间被拆分,代码有点杂乱无章。我刚刚在现有页面上添加了一个DDL,并手动添加了两个项目(根本没有事件处理),它也需要单击两下才能展开它。)-(