Jqgrid单击自定义编辑按钮打开另一个页面

时间:2016-02-09 15:24:08

标签: javascript jquery jqgrid

我有一个JQGrid,每行都有一个按钮,点击按钮必须打开一个包含edit.jsp页面的小对话框。我尝试过使用

$("#list").on("click", "#apri", function(){                 
            var id =sessionStorage.getItem("idProdotto");
            $("#list").jqGrid('editGridRow', id, {height:280,url:"http://localhost:8080/SaGE2/prodotti/edit" ,reloadAfterSubmit:false});                
        });

但是完全忽略了URL,使用它没有URL是不可能的,因为使用editGridRow打开的普通对话框具有输入框,但它不会加载按钮位于的行的值。 / p>

我要发布按钮的格式化程序,因为在这里你可以看到sessionStorage的用法

function bottone (cellvalue, options, rowObject)
        {          
           return "<div style='margin-bottom: 5px; margin-top: 5px;'>" +  
           "<button id='apri' onclick="+sessionStorage.setItem("idProdotto", rowObject.id)+"> Apri </button></div>";

        }

1 个答案:

答案 0 :(得分:1)

您不应该将相同的id值作为一个元素添加到页面上(对于所有按钮,请参阅id='apri')。

在我看来,您应该只使用带有选项formatter: "actions"的预定义formatoptions: { editformbutton: true }。请参阅the demo作为示例。可以指定editGridRow的其他选项,具体取决于jqGrid的版本和您使用的fork。如果使用免费的jqGrid,您可以指定formEditing参数内的所有选项。有关详细信息,请参阅the wiki article。如果使用旧版本的jqGrid,您可以使用editOptions formatoptions属性中的选项(参见the documentation)。

免费的jqGrid允许您在格式化程序操作中创建自定义按钮。请参阅the answer

如果您确实需要使用自定义格式化程序,那么我建议您阅读the answerthis one,其中会显示beforeSelectRow回调的使用情况。