0

MVC、jQuery、jqGridに関しては、私は非常に初心者です。ユーザーが追加ボタンをクリックしたときに別のページにリダイレクトする方法の解決策を見つけるために、過去 2 日間立ち往生しています。編集ボタンでも同じことを行う必要がありますが、その前に、要求された行を編集できるかどうかを確認するために JavaScript 関数を呼び出す必要があります。

どんな助けでも大歓迎です。

jqGridの作成に使用したコードは次のとおりです

var jqDataUrl = "Account/LoadBaseData";
        $(document).ready(function () {
            // Set up the jquery grid
            $("#ListTable").jqGrid({
                // Ajax related configurations
                url: jqDataUrl,
                datatype: "json",
                mtype: "POST",
                // Specify the column names
                colNames: ["Bank","Account No","Account Name"],
                // Configure the columns
                colModel: [ { name: "BankReference", index: "BankReference", width: 40, align: "left"}, { name: "AccountNo", index: "AccountNo", width: 40, align: "left"}, { name: "AccountName", index: "AccountName", width: 40, align: "left"}],
                // Grid total width and height
                width: 850,
                height: 400,
                // Paging
                toppager: true,
                pager: $("#ListTablePager"),
                rowNum: 14,
                viewrecords: true, // Specify if "total number of records" is displayed
                // Grid caption
                caption: "BankAccount List",
                editurl: "/GridDemo/GridSave",
            }).navGrid("#ListTablePager",
            { refresh: true, add: true, edit: true, del: true},
                { }, // settings for edit
                {}, // settings for add
                {}, // settings for delete
                {sopt: ["cn"]}  
            );


        });

よろしくお願いします。

4

1 に答える 1

2

jqgrid に付属の追加、編集ボタンは、インライン/フォームを介してレコードを追加/編集するために使用されます。あなたの場合、いくつかの条件に基づいて追加/編集ボタンのクリックでリダイレクトを行いたいので、カスタムボタンを使用することをお勧めします。それは非常に簡単です。

$("#ListTable").jqGrid({
  ...
})
.navGrid("#ListTablePager", {edit:false, add:false, del:false,search:false })
.navButtonAdd("#ListTablePager", { // custom add button
   caption:"Add",  
   buttonicon:"ui-icon-add", 
   onClickButton: function(){ 
     var grid = $("#grid_name"); // ur jqgrid
     var rowid = grid.jqGrid('getGridParam', 'selrow'); // get the selected rowid

     // u can get the cell value of the row by 
     // grid.jqGrid('getCell', rowid, 'rowName');

     if(your condition)
        window.location = ...
   }, 
   position:"last"
})
.navButtonAdd('#ListTablePager',{ // custom edit button
   caption:"Edit", 
   buttonicon:"ui-icon-edit", 
   onClickButton: function(){ 
      ...
   }, 
   position:"last"
});

リクエストされた行を編集できる、またはonClickButtonイベント内で現在選択されている行を取得できないという意味がわかりません

var grid = $("#grid_name");

var rowid = grid.jqGrid('getGridParam', 'selrow');

選択した行の特定のセル値を取得するには、

grid.jqGrid('getCell', rowid, 'rowName');

したがって、これに基づいて、条件を簡単にフレーム化し、window.location を設定してリダイレクトを行うことができます。

于 2012-07-13T11:12:10.213 に答える