如何在javascript中从RadComboBox中删除一个项目

时间:2013-09-18 10:57:06

标签: asp.net telerik radcombobox

我的UI中有2个RadComboBox。 根据一个RadComboBox1 selectionChanged,我想从RadComboBox2中删除一个项目。

我试过,但无法从RadComboBox2中删除该项目。 我的代码:

<telerik:RadScriptBlock ID="RadScriptBlock1" runat="server">
    <script type ="text/javascript" language="javascript" >
        function ComboBox1_SelectionChanged(sender, eventArgs) {
            var d = $find("<%=ComboBox2.ClientID%>");
            var item = eventArgs.get_item();
            if (item.get_text() == 'Check Out') {
                d.disable();
                d.set_text('N/A');
            }
            else {
                d.enable();
                var items = d.get_items();
                var comboItem = d.findItemByText("N/A"); //remove "N/A" and want to select "A"
                items.remove(comboItem);
                d.set_text('A');

            }
        }
    </script>
    </telerik:RadScriptBlock>

1 个答案:

答案 0 :(得分:1)

我认为你错过了该代码中的“trackChanges”属性。我编写了自己的测试代码并且工作得很完美。

如果还有其他我可以提供帮助,请告诉我。)

<telerik:RadComboBox runat="server" ID="rcb1" Label="ComboBox 1" OnClientSelectedIndexChanged="rcb1_SelectedIndexChanged">
    <Items>
        <telerik:RadComboBoxItem Text="Select Something" Value="0" />
        <telerik:RadComboBoxItem Text="Item 1" Value="1" />
        <telerik:RadComboBoxItem Text="Item 2" Value="2" />
        <telerik:RadComboBoxItem Text="Item 3" Value="3" />
    </Items>
</telerik:RadComboBox>

<telerik:RadComboBox runat="server" ID="rcb2" Label="ComboBox 2">
        <Items>
        <telerik:RadComboBoxItem Text="Item 1" Value="1" />
        <telerik:RadComboBoxItem Text="Item 2" Value="2" />
        <telerik:RadComboBoxItem Text="Item 3" Value="3" />
    </Items>
</telerik:RadComboBox>
<telerik:RadScriptBlock runat="server" ID="sb1">
    <script>
        function rcb1_SelectedIndexChanged(sender, eventArgs) {

            var item = eventArgs.get_item();
            var d = $find("<%=rcb2.ClientID%>");

            var comboItem = d.findItemByValue(item.get_value());
            if (comboItem) {
                d.trackChanges();
                d.get_items().remove(comboItem);
                d.commitChanges();
            }
        }
    </script>
</telerik:RadScriptBlock>