1

出于某种原因,我的 RadComboBox “EmptyMessage” 没有显示在页面的初始加载中,但是在我聚焦并模糊控制之后它会显示。如何强制我的“EmptyMessage”默认显示?

我的 .aspx 如下:

<telerik:RadComboBox 
  ID="SomeFilter" runat="server"
  EmptyMessage="Choose..."
  OnClientSelectedIndexChanging="OnClientSelectedIndexChanging"
  OnClientDropDownOpening="OnClientDropDownOpening"
  OnClientDropDownClosing="OnClientDropDownClosing"
  OnClientBlur="OnClientBlur">
    <ItemTemplate>
      <asp:CheckBox ID="ItemSelector" runat="server"  /> 
      <asp:Label runat="server" ID="ItemLabel" AssociatedControlID="ItemSelector">
        <%# DataBinder.Eval(Container, "Text") %>
      </asp:Label>
    </ItemTemplate>
</telerik:RadComboBox>

我背后的代码:

protected void Page_Load(object sender, EventArgs e)
{
  if (!Page.IsPostBack)
  {
    SetSomeFilterDropDown();
  }
}

private void SetSomeFilterDropDown()
{
  SomeFilter.Items.Add(new RadComboBoxItem("Test1", "Test1"));
  SomeFilter.Items.Add(new RadComboBoxItem("Test2", "Test2"));
  SomeFilter.Items.Add(new RadComboBoxItem("Test3", "Test3"));
  SomeFilter.DataBind();
}

我的 .aspx 中还有以下 javascript 方法:

var supressDropDownClosing = false;

    OnClientDropDownClosing = function (sender, eventArgs) {
        eventArgs.set_cancel(supressDropDownClosing);
        sender.clearSelection();
    }

    OnClientSelectedIndexChanging = function (sender, eventArgs) {
        eventArgs.set_cancel(supressDropDownClosing);
    }

    OnClientDropDownOpening = function (sender, eventArgs) {
        supressDropDownClosing = true;
    }

    OnClientBlur = function (sender) {
        supressDropDownClosing = false;
        sender.toggleDropDown();
    }

我的组合框默认为“Test1”而不是“Choose...”。但是,一旦我打开和关闭组合框,默认更改为“选择...”。

4

1 回答 1

1

由于这RadComboBox不是按需加载,因此为了EmptyTextMessage按预期工作,您还需要将属性设置AllowCustomTextTrue

来自Telerik

当 AllowCustomText 属性设置为 True(在按需加载方案中始终为 true)时,可以使用 EmptyMessage 属性。它在组合框的输入字段中设置文本。当组合框获得焦点时,此文本会消失,如果未选择任何项目,则会在模糊时再次出现。

于 2011-01-11T20:28:00.523 回答