我在我的页面中使用两个telerik Radcombobox,具有批量编辑功能。我有一个radcombobox的价值。基于在第一个组合框中选择的值,应该改变第二个组合框中的值。请帮助我解决一些客户端的解决方案
答案 0 :(得分:1)
挂钩第一个组合的OnClientSelectedIndexChanged事件:http://docs.telerik.com/devtools/aspnet-ajax/controls/combobox/client-side-programming/events/onclientselectedindexchanged
获取对第二个的引用:http://docs.telerik.com/devtools/aspnet-ajax/general-information/get-client-side-reference
使用其set_value()或set_text()方法或实际上您喜欢的API:http://docs.telerik.com/devtools/aspnet-ajax/controls/combobox/client-side-programming/objects/radcombobox-object或者,使用get_items(),检查其属性并选择()所需的项目(如果已经有一个项目清单。
编辑:基于OP评论的一些进一步细节:
批量编辑网格适用于客户端,因此您无法拥有纯服务器解决方案。在第一个组合更改时调用webservice,并在数据返回时使用JS创建组合框项:http://docs.telerik.com/devtools/aspnet-ajax/controls/combobox/client-side-programming/objects/radcombobox-object。
在获取对第二个组合的引用时 - 向其添加一个CssClass,获取其DOM对象并使用.control属性,如我链接的第二篇文章所示
<script>
function OnClientSelectedIndexChanged(sender, args) {
var secondCombo = $telerik.$(".secondCombo").get(0).control;//add some defensive checks here
var selectedValue = args.get_item().get_value();
var desiredItem = secondCombo.findItemByValue(selectedValue);
if (desiredItem) {
desiredItem.select();
}
}
</script>
<telerik:RadComboBox ID="RadComboBox1" runat="server" OnClientSelectedIndexChanged="OnClientSelectedIndexChanged">
<Items>
<telerik:RadComboBoxItem Text="one" Value="1" />
<telerik:RadComboBoxItem Text="two" Value="2" />
<telerik:RadComboBoxItem Text="three" Value="3" />
</Items>
</telerik:RadComboBox>
<telerik:RadComboBox ID="RadComboBox2" runat="server" CssClass="secondCombo">
<Items>
<telerik:RadComboBoxItem Text="first" Value="1" />
<telerik:RadComboBoxItem Text="second" Value="2" />
<telerik:RadComboBoxItem Text="third" Value="3" />
</Items>
</telerik:RadComboBox>