Javascript从数组填充Telerik MVC组合框

本文关键字:MVC 组合 Telerik 填充 数组 Javascript | 更新日期: 2023-09-27 17:50:59

我的申请是MVC4;我试图使用json填充一个Telerik MVC,结果是一个数组;但我只得到一件东西;下面是我的脚本:

  function CheckWord() {
        var wordtocheck = $('#Cword').val();
        alert(wordtocheck);
        $.ajax({
            url: '/Home/CheckWord',
            type: 'POST',
            data: {
                cword: wordtocheck
            },
            success: function (data) {
                for (var i = 0; i < data.array.length; ++i) {
                    var myString = data.array[i];
                    var mySplitResult = myString.split("-->");
                    var hms = mySplitResult[0];
                    var a1 = hms.split(',');
                    var a2 = a1[0];
                    var a = a2.split(':');
                    var start = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
                    var hms1 = mySplitResult[1];
                    var b1 = hms1.split(',');
                    var b2 = b1[0];
                    var b = b2.split(':');
                    var end = (+b[0]) * 60 * 60 + (+b[1]) * 60 + (+b[2]);
                    var dropDownList = $('#ComboBox').data('tComboBox');
                     dropDownList.dataBind([
                     { Text: start[i] + "-" + end[i], Value: start[i] + "-" + end[i] }]);
                     dropDownList.select(0);
                }
            },
            error: function () {
            }
        });

当我在开始和结束后添加[I]时,我得到未定义!没有[i],我得到正确的值,但只有一个项目。非常感谢您的建议,谢谢。

Javascript从数组填充Telerik MVC组合框

希望以下链接对您有所帮助

http://www.telerik.com/community/forums/aspnet-ajax/mvc/radcombobox-populate-on-client-side.aspx

这里可以看到

<telerik:RadComboBox ID="radProject" runat="server" Skin="Default" Width="300px" 
EnableLoadOnDemand="true" Filter="Contains" OnClientItemsRequesting="getProjects" 
EmptyMessage="Select Project" /> 

在上面的代码中,EnableLoadOnDemand被设置为true, Filter被设置为contains,事件被绑定到onclientitemsrequested。

function getProjects(sender, args) { 
            itemsRequesting(sender, args); 
            $.getJSON( 
            '<%= Url.Action("GetProjects", "Capital") %>', 
            { facility: GetFacility().get_value() }, 
            function(data) { 
                fillCombo(sender, data); 
                sender.highlightAllMatches(sender.get_text()); 
            }); 
        } 

上面的javascript方法使用get JSON和参数执行ajax调用,子方法fillCombo填充组合框。

//使用这个为你所有的RadComboBox填充从JQuery

 function fillCombo(combo, result) { 
            combo.clearItems(); 
            var items = result.d || result; 
            // This just lets your users know that nothing was returned with their search 
            if (items.length == 0) { 
                var comboItem = new Telerik.Web.UI.RadComboBoxItem(); 
                comboItem.set_text("Nothing found"); 
                comboItem.set_value("null"); 
                combo.get_items().add(comboItem); 
                combo.set_text(""); 
            } 
            for (var i = 0; i < items.length; i++) { 
                var item = items[i]; 
                var comboItem = new Telerik.Web.UI.RadComboBoxItem(); 
                comboItem.set_text(item.Text); 
                comboItem.set_value(item.Value); 
                combo.get_items().add(comboItem); 
            } 
        } 
现在,为了取消RADComboBox的默认行为,您可以使用以下代码

//取消默认的RadComboBox行为

function itemsRequesting(sender, args) { 
            if (args.set_cancel != null) { 
                args.set_cancel(true); 
            } 
            if (sender.get_emptyMessage() == sender.get_text()) 
                sender.set_text(""); 
        } 

希望以上方法能解决你的问题

我是这样解决这个问题的:

  function CheckWord() {
        var wordtocheck = $('#Cword').val();
        alert(wordtocheck);
        $.ajax({
            url: '/Home/CheckWord',
            type: 'POST',
            data: {
                cword: wordtocheck
            },
            success: function (data) {
                var listData = [];
                for (var i = 0; i < data.array.length; ++i) {
                    var myString = data.array[i];
                    var mySplitResult = myString.split("-->");
                    var hms = mySplitResult[0];
                    var a1 = hms.split(',');
                    var a2 = a1[0];
                    var a = a2.split(':');
                    var start = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
                    var hms1 = mySplitResult[1];
                    var b1 = hms1.split(',');
                    var b2 = b1[0];
                    var b = b2.split(':');
                    var end = (+b[0]) * 60 * 60 + (+b[1]) * 60 + (+b[2]);
                    listData[i] = { Text: myString, Value: start };
                }
                var dropDownList = $('#ComboBox').data('tComboBox');
                // debugger;
                dropDownList.dataBind(listData);
                dropDownList.select(0);
            },
            error: function () {
            }
        });
    }

希望对大家有所帮助。