RadComboBox在单击页面的其他部分时更改所选项目

时间:2014-04-08 10:47:41

标签: c# asp.net telerik radcombobox

如果我选择RadComboBox的任何项目,接下来当我点击页面的其他部分时,RadComboBox项目正在改变。我该如何解决这个问题?

ASPX:

<telerik:RadComboBox ID="cmbExpCTC" runat="server" MarkFirstMatch="true">
</telerik:RadComboBox>

C#:

public void FillStatus()
{
    try
    {
        cmbExpCTC.Enabled = true;

        dsLocation = BizRegion.GetCandidateInterviewStatus(hfdcandidateid.Value, hfdjobid.Value, hfdRounds.Value);
        RadComboBoxItem cItem = new RadComboBoxItem("Sourcing in process", "Sourcing");
        cmbExpCTC.Items.Add(cItem);
        if (dsLocation.Tables[0].Rows.Count > 0)
        {
            for (int i = 0; i <= dsLocation.Tables[0].Rows.Count - 1; i++)
            {
                cItem = new RadComboBoxItem(dsLocation.Tables[0].Rows[i]["InterviewFormat"].ToString() + " - " + "Round" + " " + dsLocation.Tables[0].Rows[i]["Rounds"].ToString(), "Sourcing");
                cmbExpCTC.Items.Add(cItem);
            }
        }
    }
    catch { }
}

2 个答案:

答案 0 :(得分:1)

您的解决方案将清除列表,因此如果用户再次单击下拉列表,他们将不会有任何内容。您所要做的就是:

OnClientDropDownClosed="OnComboBoxDropDownClosed"

function OnComboBoxDropDownClosed(sender, args) {
     var field = $find('<%=cboBox.ClientID %>');
     if (field !== null)
     {
         var text = cboBox.get_selectedItem().get_text();
         field.set_text(text);
     }
 }

答案 1 :(得分:0)

我得到了解决方案,我将OnClientDropDownClosed javascript函数添加到RadComboBox。

<telerik:RadComboBox ID="cmbExpCTC" runat="server" MarkFirstMatch="true" EnableLoadOnDemand="true"  OnClientDropDownClosed="OncmbExpCTCDropDownClosed" >
                    </telerik:RadComboBox>

  function OncmbExpCTCDropDownClosed(sender, args) {
            sender.clearItems();
            if (args.get_domEvent().stopPropagation)
                args.get_domEvent().stopPropagation();
        }