我的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>
答案 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>