0

我对 MVC、jQuery 和 jqGrid 非常陌生。在过去的两天里,我一直在寻找有关如何在用户单击添加按钮时重定向到另一个页面的解决方案。我也需要在编辑按钮上做同样的事情,但在这样做之前我需要调用一个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自带的添加、编辑按钮,用于通过inline/form添加/编辑记录。在您的情况下,您希望根据某些条件在单击添加/编辑按钮时进行重定向,因此我建议使用自定义按钮,这很容易。

$("#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 回答