首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Telerik RadComboBox javascript问题

Telerik RadComboBox javascript问题
EN

Stack Overflow用户
提问于 2009-12-02 12:07:05
回答 3查看 15.9K关注 0票数 3

我在使用来自Telerik的RadComboBox的javascript时遇到了问题。不,我没有能力从Telerik切换到jQuery或其他框架。我只想说我的头上几乎没有头发了。

简单地说,我想获取一个RadComboBox的选定索引,并将另一个RadComboBox更新为这个索引。例如:在第一个RCB中选择一个值将自动更新客户端上的第二个值。我的问题是,我无法找到在第二个RCB上设置索引的方法,尽管docs说有一种简单的方法。(你在正确之前就听到了:)

我在这个页面上跟踪了API文档(电信文档),并在IE8中使用了javascript调试器,在火狐中使用了出色的FireBug。我使用的是Telerik.Web.UI程序集版本2009.2.826.20

--我不需要一个解决方案的完整源代码,但是向正确的方向前进是非常感激的!:)

下面是我一起编写的一些示例代码:

代码语言:javascript
复制
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />

    <script type="text/javascript" language="javascript">
        function masterChanged(item)
        {
            var detailCB = <%= DetailCB.ClientID %>;

            var index = item.get_selectedIndex();
            detailCB.SetSelected(index);             //method does not exist, but should according to the docs..

        }
    </script>

    <div>
        <telerik:RadComboBox ID="MasterCB" runat="server" OnClientSelectedIndexChanged="masterChanged">
            <Items>
                <telerik:RadComboBoxItem Text="One" Value="1" runat="server" />                
                <telerik:RadComboBoxItem Text="Two" Value="2" runat="server" />
                <telerik:RadComboBoxItem Text="Three" Value="3" runat="server" />
            </Items>
        </telerik:RadComboBox>
    </div>

    <div>
        <telerik:RadComboBox ID="DetailCB" runat="server">
            <Items>
                <telerik:RadComboBoxItem Text="One" Value="1" runat="server" />                
                <telerik:RadComboBoxItem Text="Two" Value="2" runat="server" />
                <telerik:RadComboBoxItem Text="Three" Value="3" runat="server" />
            </Items>
        </telerik:RadComboBox>
    </div>
</form>

我不需要一个完整的解决方案的源代码,但正确的方向踢将是非常感激的!)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-07 00:54:50

非常感谢Veselin Vasilev和stefpet对他们的投入。经过了太多小时的js调试和一杯咖啡,我终于让它与IE8和FF3.5一起工作了。

用于更新并行RadComboBoxes的正确javascript事件处理程序(响应OnClientSelectedIndexChanged事件):

代码语言:javascript
复制
    function masterChanged(sender, e)
    {
        var detailCB = $find("<%= DetailCB.ClientID %>");

        var item = e.get_item();
        var index = item.get_index();                //get selectedIndex in master
        var allDetailItems = detailCB.get_items();
        var itemAtIndex = allDetailItems.getItem(index);  //get item in detailCB
        itemAtIndex.select();
    }

当然,可以通过在一条线路上进行几次调用来缩短时间。我发现可能有一种方法可以用更少的代码来完成这个任务,但是我几乎什么都试过了,这是唯一对我有用的解决方案。

票数 4
EN

Stack Overflow用户

发布于 2009-12-06 09:00:31

您正在使用“经典”RadComboBox的客户端API,而组合体的版本则用于ASP.NET AJAX。下面是您的方法应该是什么样子:

代码语言:javascript
复制
function masterChanged(item)
{
    var detailCB = $find("<%= DetailCB.ClientID %>");

    var index = item.get_selectedIndex();
    detailCB.set_selectedIndex(index);            
}

以下是文档中的适当链接:clientsidebasics.html

票数 3
EN

Stack Overflow用户

发布于 2009-12-02 13:11:14

我没有使用Telerik的经验,但考虑到实际呈现的是包含选项元素的标准选择列表,您可以通过将选项的selected属性设置为true,以编程方式选择选项。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1832522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档