Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过传输更新剑道数据源_Javascript_Kendo Ui_Kendo Combobox_Kendo Dropdown - Fatal编程技术网

Javascript 通过传输更新剑道数据源

Javascript 通过传输更新剑道数据源,javascript,kendo-ui,kendo-combobox,kendo-dropdown,Javascript,Kendo Ui,Kendo Combobox,Kendo Dropdown,我正在尝试根据从另一个dropdownlist(cboSearchString1DDL.element[0].value)中选择的值设置远程数据url。我继续学习剑道网络控制,所以我不知道如何最有效地完成这项任务。我尝试了几种方法,但在读取数据源时仍然会出错。我正试图将其设置为DDL1的一部分。这就是我所处的位置,我知道这不是正确的方式: // search string 1 DDL var cboSearchString1DDL = $("#cboSearchString1DDL").kend

我正在尝试根据从另一个dropdownlist(cboSearchString1DDL.element[0].value)中选择的值设置远程数据url。我继续学习剑道网络控制,所以我不知道如何最有效地完成这项任务。我尝试了几种方法,但在读取数据源时仍然会出错。我正试图将其设置为DDL1的一部分。这就是我所处的位置,我知道这不是正确的方式:

// search string 1 DDL
var cboSearchString1DDL = $("#cboSearchString1DDL").kendoDropDownList({
    autoBind: false,
    optionLabel: " "
}).data("kendoDropDownList");

// search string 2 DDL
var cboSearchString2DDL = $("#cboSearchString2DDL").kendoDropDownList({
    autoBind: false,
    optionLabel: " "    
}).data("kendoDropDownList");

// 1st DDL dataSource                   
var dataSourceTowns = new kendo.data.DataSource({                   
    transport: {       
       read: {
           url: _urlTowns,
           dataType: "json",
        }
    },
    schema: {
        data: "Towns"
    }
});

$("#cboSearchString1DDL").data("kendoDropDownList").wrapper.show();

// 1st DDL                               
var townsDDL = $("#cboSearchString1DDL").kendoDropDownList({
    autoBind: false,
    dataTextField: "Column1",
    dataValueField: "Column1",
    dataSource: dataSourceTowns,
    close: function () {
        alert(cboSearchString1DDL.element[0].value);
        streetsDDL.enable(true);
        streetsDDL.setDataSource(dataSourcestreetsDDL);
        streetsDDL.refresh();
    }
}).data("kendoDropDownList");

// show 2nd DDL 
$("#cboSearchString2DDL").data("kendoDropDownList").wrapper.show();
cboSearchString2DDL.enable(false);

// 2nd DDL datasource 
var dataSourcestreetsDDL = new kendo.data.DataSource({
    transport: {
        read: {
            url: _urlSOESearchAddress + "townName=" + cboSearchString1DDL.element[0].value + "&f=",
        dataType: "json",
        },
    },
    schema: {
        data: "StreetsinTown"
    }
});

// 2nd DDL
var streetsDDL = $("#cboSearchString2DDL").kendoDropDownList({
    autoBind: false,
    dataTextField: "Street",
    dataValueField: "Street",
    requestStart: function (e) {
        console.log("request started");
    },
    requestEnd: function (e) {
        var response = e.response;
        var type = e.type;
        console.log(type);
        console.log(response.length);
    }
}).data("kendoDropDownList");
提前谢谢

$("#cboSearchString1DDL").kendoDropDownList({
他打了两次电话。第二次调用时,可能会清除此处设置的var:

var cboSearchString1DDL = $("#cboSearchString1DDL").kendoDropDownList({
通常使用kendo时,如果要在一个元素上多次初始化组件,则需要执行.destroy()来干净地初始化。我甚至不确定这就是你想要做的

他打了两次电话。第二次调用时,可能会清除此处设置的var:

var cboSearchString1DDL = $("#cboSearchString1DDL").kendoDropDownList({

通常使用kendo时,如果要在一个元素上多次初始化组件,则需要执行.destroy()来干净地初始化。我甚至不确定这是否是您正在尝试执行的操作。

请记住,url可以是一个以字符串形式返回url的函数。因此,如果更容易编码,您还可以执行以下操作:

var dataSourcestreetsDDL = new kendo.data.DataSource({
    transport: {
        read: {
            url: function () {
                var searchAddress = ...;
                var searchString = ...;
                return searchAddress + "townName=" + searchString + "&f=";
            }
        ...

只要数据源需要读取数据,就会调用该函数。这可能比在下拉列表关闭时更改内容更容易。

请记住,url可以是一个以字符串形式返回url的函数。因此,如果更容易编码,您还可以执行以下操作:

var dataSourcestreetsDDL = new kendo.data.DataSource({
    transport: {
        read: {
            url: function () {
                var searchAddress = ...;
                var searchString = ...;
                return searchAddress + "townName=" + searchString + "&f=";
            }
        ...


只要数据源需要读取数据,就会调用该函数。这可能比在下拉列表关闭时更改内容更容易。

cboSearchString1DDL.element[0]。远程服务调用时,值显然为null。谢谢。你发布的代码中肯定没有定义。因此,请定义它或发布更多的代码。很抱歉,我更新了我的代码,并考虑到了简洁性。cboSearchString1DDL仍然没有在任何地方定义。您是否将jquery选择器与变量名混淆?我猜您应该这样做:
$(“#cbosearchring1ddl”).val()
而不是
cbosearchring1ddl.element[0]。value
cbosearchring1ddl.element[0]。远程服务调用时,value显然为null。谢谢。你发布的代码中肯定没有定义。因此,请定义它或发布更多的代码。很抱歉,我更新了我的代码,并考虑到了简洁性。cboSearchString1DDL仍然没有在任何地方定义。您是否将jquery selector与变量名混淆了?我猜您应该这样做:
$('cboSearchString1DDL').val()
而不是
cboSearchString1DDL.element[0]。value
我正在重用该元素,您是对的。我有一个大型case语句,其中我使用.hide()和.show()替换掉AutoComplete或DropDownList控件。我将研究.destroy()以及何时调用它。文档非常简短。还有一件事。。。我有一个动态列表,我想在我的剑道格网的剑道下拉列表中使用。似乎下拉列表只在单击时自动生成。我在过滤器下拉区域使用了这个。最后,我不得不检测mousedown、构建列表,并在剑道下拉列表中回调动态列表的结果。可能有帮助,也可能没有帮助。很难说,因为剑道有这么多的可能性。哎哟,我知道。我总是通过这些控件学习新的东西。有点像我上面的问题一样令人沮丧,特别是当我可以捕获显示值的控件时,它却中断了。我正在调查。销毁()。听起来这是一个有趣的方法;)我在重复使用元素,你是对的。我有一个大型case语句,其中我使用.hide()和.show()替换掉AutoComplete或DropDownList控件。我将研究.destroy()以及何时调用它。文档非常简短。还有一件事。。。我有一个动态列表,我想在我的剑道格网的剑道下拉列表中使用。似乎下拉列表只在单击时自动生成。我在过滤器下拉区域使用了这个。最后,我不得不检测mousedown、构建列表,并在剑道下拉列表中回调动态列表的结果。可能有帮助,也可能没有帮助。很难说,因为剑道有这么多的可能性。哎哟,我知道。我总是通过这些控件学习新的东西。有点像我上面的问题一样令人沮丧,特别是当我可以捕获显示值的控件时,它却中断了。我正在调查。销毁()。听起来这是一个有趣的方法;)太棒了,谢谢。给你一杯虚拟啤酒!很好,太棒了,谢谢。给你一杯虚拟啤酒!结果很好。