我有一个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>";
}
答案 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 answer和this one,其中会显示beforeSelectRow
回调的使用情况。