RadComboBox EmptyMessage在初始加载时未显示

时间:2011-01-11 18:55:45

标签: asp.net telerik radcombobox rad-controls

出于某种原因,我的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”而不是“选择...”。但是,一旦我打开并关闭组合框,默认值就会更改为“选择...”。

1 个答案:

答案 0 :(得分:1)

由于此RadComboBox未按需加载,为了使EmptyTextMessage按预期工作,您还需要将属性AllowCustomText设置为True < / p>

来自Telerik

  

可以使用EmptyMessage属性   当AllowCustomText属性是   设置为True(在a中总是如此)   按需加载方案)。它设定了一个   文本在输入字段中   组合框。这段文字消失了   组合框获得焦点和   如果没有项目,则再次出现模糊   地选择。