Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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
Jquery 剑道网格基于条件的页面大小和过滤器_Jquery_Razor_Kendo Ui_Kendo Grid - Fatal编程技术网

Jquery 剑道网格基于条件的页面大小和过滤器

Jquery 剑道网格基于条件的页面大小和过滤器,jquery,razor,kendo-ui,kendo-grid,Jquery,Razor,Kendo Ui,Kendo Grid,嗨,有没有办法控制我剑道网格的过滤器和页面大小选项 我有一个剑道网格,有一些过滤器和页面大小。现在,我想删除选定列的一些过滤器。页面大小也取决于登录(或某些条件) 有什么办法处理这个问题吗?从控制器还是从我的角度 感谢您,而不是动态更改过滤器,因为在您的情况下,您只需要根据登录名进行更改,因此我们的想法是使用正确的值创建网格。即,从服务器发出代码,但将其用作filterable和pageSizeJavaScript变量的值,该变量在执行时获取其值,具体取决于登录的用户 示例:我定义了一个登录表单

嗨,有没有办法控制我剑道网格的过滤器和页面大小选项

我有一个剑道网格,有一些过滤器和页面大小。现在,我想删除选定列的一些过滤器。页面大小也取决于登录(或某些条件)

有什么办法处理这个问题吗?从控制器还是从我的角度


感谢您,而不是动态更改过滤器,因为在您的情况下,您只需要根据登录名进行更改,因此我们的想法是使用正确的值创建网格。即,从服务器发出代码,但将其用作
filterable
pageSize
JavaScript变量的值,该变量在执行时获取其值,具体取决于登录的用户

示例:我定义了一个登录表单,当用户单击login
按钮时,它执行网格初始化,从那时起它就为空

表格:

用于读取登录用户并设置pageSizefilterable的默认值或用户特定值的代码:

var user = $("#user").val();
// Default value
var filterable = false;
var pagesize = 5;
// Specific value
if (user == "OnaBai") {
    pagesize = 20;
    filterable = true;
}
现在,继续初始化
数据源
网格
。我们将使用
filterable
pageSize
JavaScript变量进行初始化

// pageSize is variable, the remaining code is the same no matter of the user
var ds = new kendo.data.DataSource({
    pageSize: pagesize,
    transport: {
        ...
    },
    ...
};

// Create a DIV element and a Grid on it.
var grid = $("<div id='grid'></div>").kendoGrid({
    dataSource: ds,
    filterable: filterable,
    ...
});
// Append Grid element to the correct place of the HTML page
grid.appendTo($("#container"));
//pageSize是可变的,不管用户是谁,其余的代码都是相同的
var ds=新的kendo.data.DataSource({
pageSize:pageSize,
运输:{
...
},
...
};
//创建一个DIV元素和一个网格。
变量网格=$(“”)。kendoGrid({
数据源:ds,
可过滤的:可过滤的,
...
});
//将网格元素附加到HTML页面的正确位置
网格。附加到($(“#容器”);

请参阅此处的运行示例:

如果基于登录,为什么不使用正确的筛选器和页面大小选项创建网格?您可以根据您的条件和(并且只有在那时)初始化此网格选项初始化网格小部件。嗨,OnaBai,谢谢你的回复。事实上,我的要求是,网格对所有登录都是一样的。但对于少数用户,我想禁用过滤器。但据我所知,首先你登录,然后你创建网格,对吗?为什么不根据用户配置文件创建网格?不,我在.cshtml视图中已经有了一个带有datasou的网格rce.e数据源:{transport:{read:“/Employee/GetAll”,数据类型:“json”},像这样。还有一件事我们可以在这里使用会话吗?是否建议在MVC4中使用会话?检查此示例。当然不是。cshtml,但我的代码已经生成,然后在执行时,它会根据选择的用户决定要做什么。如果键入OnaBai,则有
筛选
页面大小
为20,否则没有
过滤
页面大小
为5。
var user = $("#user").val();
// Default value
var filterable = false;
var pagesize = 5;
// Specific value
if (user == "OnaBai") {
    pagesize = 20;
    filterable = true;
}
// pageSize is variable, the remaining code is the same no matter of the user
var ds = new kendo.data.DataSource({
    pageSize: pagesize,
    transport: {
        ...
    },
    ...
};

// Create a DIV element and a Grid on it.
var grid = $("<div id='grid'></div>").kendoGrid({
    dataSource: ds,
    filterable: filterable,
    ...
});
// Append Grid element to the correct place of the HTML page
grid.appendTo($("#container"));