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