Kendo ui 在剑道网格中插入新记录时如何隐藏特定列
大家好,我正在尝试使用剑道网格插入新记录。Kendo ui 在剑道网格中插入新记录时如何隐藏特定列,kendo-ui,kendo-grid,Kendo Ui,Kendo Grid,大家好,我正在尝试使用剑道网格插入新记录。 很好。 但我想设置隐藏和显示。 如果是新的,则隐藏第二列。 仅此行不包括其他所有行。 这是我的密码:- <!DOCTYPE html> <html> <head> <link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
很好。
但我想设置隐藏和显示。
如果是新的,则隐藏第二列。
仅此行不包括其他所有行。
这是我的密码:-
<!DOCTYPE html>
<html>
<head>
<link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.common.min.css" rel="stylesheet" type="text/css" />
<link href="http://cdn.kendostatic.com/2012.3.1315/styles/kendo.default.min.css" rel="stylesheet" type="text/css" />
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://cdn.kendostatic.com/2012.3.1315/js/kendo.all.min.js"></script>
<script>
$(document).ready(function () {
var users = [{ UserId: 1, UserName: "Robin", IsAdmin: true }
, { UserId: 2, UserName: "Hood", IsAdmin: false }];
var t = $("#grid").kendoGrid({
dataSource: { data: users, pageSize: 10 }// binding data
,pageable: true
, selectable: "multiple row"
, toolbar: ["create"]
, columns: [
{ field: "UserId" }
, { field: "UserName"},
{ command: "destroy", title: " ", width: "100px" }
],
editable: true,
edit: function(e)
{
if(e.model.isNew())
{
$("td:nth-child(2)").css("display","none");
}
}
});
});
</script>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<input type="button" value="Iterate" onclick="iterate()"/>
<div id="grid"></div>
</body>
</html>
$(文档).ready(函数(){
var users=[{UserId:1,UserName:“Robin”,IsAdmin:true}
,{UserId:2,用户名:“Hood”,IsAdmin:false}];
var t=$(“#网格”).kendoGrid({
数据源:{data:users,pageSize:10}//绑定数据
,pageable:true
,可选:“多行”
,工具栏:[“创建”]
,专栏:[
{字段:“用户ID”}
,{字段:“用户名”},
{命令:“销毁”,标题:,宽度:“100px”}
],
是的,
编辑:功能(e)
{
如果(e.model.isNew())
{
$(“td:nth child(2)”).css(“显示”、“无”);
}
}
});
});
JS-Bin
如果可能,请在插入新记录时提供帮助隐藏第二个td。谢谢。试试这个 下面是document.ready中的代码集
$(".k-button,.k-button-icontext,.k-grid-add").click(function(){
var activityGrid = $("#grid").data("kendoGrid");
activityGrid.hideColumn(1);
});
更新代码:
var cnt = 1;
$(".k-button,.k-button-icontext,.k-grid-add").click(function () {
cnt = 0;
});
var hideFieldName = "UserName";
$(".k-textbox").live("focusin", function (e) {
if (cnt == 0) {
if ($(this).attr("name") == hideFieldName) {
if ($(this).closest('tr').index() == cnt) {
$(this).attr("readonly", "readonly");
}
}
}
});
因此,下面的代码按照您的要求工作。但在本例中,生成了textbox,但用户无法输入任何值
如果有任何问题,请告诉我……这是我的jsbin。您可以检查并尝试更改它们吗……请检查我的更新代码。。而且在JSFIDLE中,只在新行中隐藏列,而不是从所有网格中隐藏列。。。这是一个很好的工作(Y)我不明白你想做什么,但第一个问题是你试图使用
e.model
,但它没有定义,因为你的数据源没有定义模式.model
。也就是说,如果你想得到的是,当一个栏目是新的时,你不能编辑它,那么也许还有其他方法可以得到它,而不是隐藏和显示栏目。