kendo-ui的grid问题,我想在请求前改变URL的路径,请问有什么方法?

    var mainGridDataSource = new kendo.data.DataSource({
        type: 'aspnetmvc-ajax',
        transport: {
            read: {
                url: "/test",
                contentType: "application/json",
                type: "POST"
            },
            parameterMap: function (options, operation) {
                return JSON.stringify(options);
            }
        }
    });

现在进入页面默认请求这个url的数据,我想在change()事件后改变URL的路径,怎们办呢?
试过用下面这个方法,但是没用。

                   
mainGridOptions.dataSource.transport.read({
  url: "/test2"
});
阅读 4k
2 个回答
function getData(opts, callback){
    return new kendo.data.DataSource({
        type: 'aspnetmvc-ajax',
        transport: {
            read: opts,
            parameterMap: function (options, operation) {
                typeof callback == 'function' && callback(options, operation);
            }
        }
    });
}

把请求写进一个方法里,url和contentType作为一个对象的属性传进去,请求成功之后做的业务处理也用一个回调函数处理,change事件之后执行这个方法就可以了

每次新建一个DataSource是不合理的,会带来更多麻烦, kendo的url支持你使用回调函数返回一个url地址

var mainGridDataSource = new kendo.data.DataSource({
        type: 'aspnetmvc-ajax',
        transport: {
            read: {
                url: function(){
                    return ""//url
                },
                contentType: "application/json",
                type: "POST"
            },
            parameterMap: function (options, operation) {
                return JSON.stringify(options);
            }
        }
    });

另外我认为DataSource的配置有很多不合理的地方,很容易出现重复的配置,使用kendo ui的时候应该根据自己的需求进行再封装

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题