【问题标题】:RadComboBox Doesn't Collapse on ClickRadComboBox 不会在单击时折叠
【发布时间】:2014-07-24 09:54:06
【问题描述】:

当您单击一个典型的 ComboBox 时,它会展开。当您再次单击它时,它会折叠。

当您单击 RadComboBox 时,它会展开。当您再次单击它时,没有任何反应。也就是说,除非您单击箭头或实际进行选择。

我希望我的 RadComboBox 在第二次单击时折叠,就像普通的 ComboBox 一样。由于 RadComboBox 被转换成带有自己的 CSS 样式的一大堆 HTML,我不知道该怎么做。

这是我声明控件的方式。

public static RadComboBox makeARadicalBox() {
    RadComboBox cmbo = new RadComboBox();
    cmbo.ID = "MyRadicalComboBox";

    List<string> listItems = getListItems();
    foreach (string s in listItems)
        cmbo.Items.Add(new RadComboBoxItem(s));

    cmbo.Skin = "myRadicalSkin";

    // TODO - Make the *entire* box clickable instead of just the little arrow

    return cmbo; 
}

【问题讨论】:

  • 您的意思是当您第二次单击框的文本输入部分时,您希望它折叠?当您说“当您点击 RadComboBox 时”时,请说明您点击的位置。
  • 我明白你的意思。基于此站点demos.telerik.com/aspnet-ajax/combobox/examples/programming/…,单击标题框时没有事件。通过重新单击来关闭它需要一些 Telerik 不直接提供的解决方法。

标签: c# html asp.net telerik


【解决方案1】:

知道了。当您单击 RadComboBox 时,如果下拉菜单打开则隐藏下拉菜单,否则显示下拉菜单。然后mouseup 部分不会闪烁(快速打开/关闭)。

JavaScript:

<script type="text/javascript">

    function onLoad(sender) {
        var div = sender.get_element();

        $telerik.$(div).mousedown(function (e) {
            if (sender.get_dropDownVisible()) {
                sender.hideDropDown();
            }
            else {
                sender.showDropDown();
            }
        });

        $telerik.$(div).mouseup(function (e) {
            if (!sender.get_dropDownVisible()) {
                sender.hideDropDown();
            }
        });
    }

</script>

.aspx:

<telerik:RadComboBox runat="server" ID="RadComboBox1" 
ShowDropDownOnTextboxClick="false" OnClientLoad="onLoad">
    <Items>
        <telerik:RadComboBoxItem runat="server" Text="FoodStorage" />
        <telerik:RadComboBoxItem runat="server" Text="Freezer" />
        <telerik:RadComboBoxItem runat="server" Text="Fridge" />
        <telerik:RadComboBoxItem runat="server" Text="Microwave" />
        <telerik:RadComboBoxItem runat="server" Text="OnTheGo" />
        <telerik:RadComboBoxItem runat="server" Text="Pantry" />
    </Items>
</telerik:RadComboBox>

【讨论】:

  • 由于我在后面的代码中生成组合框,我不得不稍微修改一下代码,但您的回答最终向我展示了解决方案!我用cmbo.ShowDropDownOnTextboxClick = false; 解决了你提到的闪烁问题,然后我不需要两个事件来处理mousedown 和mouseup,我只需要一个叫做click 的事件。非常感谢您
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-06
  • 2012-07-06
  • 2019-04-22
  • 1970-01-01
  • 2014-02-07
  • 2019-09-18
  • 2018-05-12
相关资源
最近更新 更多