0

みなさんこんにちは、剣道グリッドを使って新しいレコードを挿入しようとしています。
それはうまくいきます。
しかし、非表示と表示を設定したい。
新しい場合は、2 番目の列を非表示にします。
この行のみで、他のすべてではありません。
ここに私のコードがあります:-

<!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>

新しいレコードを挿入するときに可能であれば助けてください。
ありがとう。

4

1 に答える 1

1

これを試して、

以下のコードは 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");
                    }
                }
            }
        });

したがって、以下のコードは要件に従って機能しました。ただし、この場合、テキストボックスは生成されましたが、ユーザーは値を入力できません。

何か問題があれば教えてください....

于 2013-07-23T07:20:28.730 に答える