2

如何在我的 GRID POST 上发送额外参数。

这是我的传输配置:

transport: {
     read: {
     dataType: "json",
     url: "/user/list",
     type: "POST"
     }
}

我需要发送一个动态的额外信息(特别是过滤器 XD)。我将在网格上的任何提交之前设置一个脚本变量。

有什么帮助吗?

4

3 回答 3

9

问题在互联网上多次讨论。您应该使用数据功能。这里有更多信息。您也可以将参数直接传递给 dataSource 的read方法。

 $('#myGrid').data().kendoGrid.dataSource.read({foo:42})
于 2013-03-07T18:24:07.653 回答
0

您可以使用Data("addParameter")添加额外的参数

@(Html.Kendo().Grid<Project.Models.UserModel>()
.Name("grid")
.Columns(columns =>
{
    columns.Bound(item => item.UserId).Title("UserId").Width(100);
    columns.Bound(item => item.UserName).Title("UserName").Width(200);
})
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(5)
.Read(read => read.Action("list", "user").Data("addParameter"))
)

<script>
function addParameter()
    {
        return {
            UserId: 10 //Your value here
        };
    }
</script>
于 2015-07-07T08:30:14.513 回答
0

这是向 AJAX 调用发送参数以及记录请求和响应的另一种方法。

 read: function (options) {

            var jsonData = {
                "ID":          $('#ID').val(),         
                "ObjectType":  $('#dropObjectType :selected').val()
            };
            console.log("REQ: " + JSON.stringify(jsonData));

            $.ajax({
                type: "POST",
                url: "/api/internal/SomeService",
                data: jsonData,
                success: function (result) {
                    console.log("RES: " + JSON.parse(JSON.stringify(result)));      

jsonData您也可以通过这种方式发送上述内容:

$("#grid").data("kendoGrid").dataSource.read(jsonData);

并将其分配给data:(并记录):

read: function (options) {

        console.log("REQ: " + JSON.stringify(options.data));

        $.ajax({
            type: "POST",
            url: "/api/internal/SomeService",
            data: options.data,
于 2017-07-19T05:24:34.527 回答