【发布时间】:2015-11-29 06:42:13
【问题描述】:
我使用 mvc4。 jqgrid的行中有按钮。单击按钮时,打开弹出窗口并在弹出窗口中编辑行网格的数据。但是当单击弹出按钮时,不要将数据传递给控制器的操作。 弹出代码:
{
name: 'Notes',
width: 160,
sortable: false,
resizable: false,
search: false,
formatter: function () {
return "<button onclick='OpenDialog()' style='margin-left:12px'>Pop Up Dlg</button>";
}
}
弹出代码(http://jqueryui.com/dialog/#modal-form):
<script>
$(function() {
var dialog, form,
modserial = $("#ModSerial"),
simno = $("#SimNo"),
function addUser() {
$(function() {
$.ajax({
url: '@Url.Action("EditMet", "MetGrid")',
data: "{'ModSerial':'" + document.getElementById('ModSerial').value + "', 'SimNo':'" + document.getElementById('SimNo').value + "'}",
type: "Post",
dataType: "Html",
success: function(result) {
$("#Data").html(result);
},
error: function() {
alert("Error!");
}
});
});
}
function log() {}
dialog = $("#dialog-form").dialog({
autoOpen: false,
height: 400,
width: 350,
modal: true,
buttons: {
"...": log,
"Confirm": addUser,
Cancel: function() {
dialog.dialog("close");
}
},
close: function() {
form[0].reset();
allFields.removeClass("ui-state-error");
}
});
form = dialog.find("form").on("submit", function(event) {
event.preventDefault();
addUser();
});
});
</script>
当调用 action(@Url.Action("EditMeter", "MeterGrid")) 时,将 null 传递给控制器。如何将数据和id的行网格传递给action?
【问题讨论】:
-
能否包含
MetGrid动作的原型(参数和返回值的类型)?您确定该操作需要 JSON 格式的数据吗?也许您应该改用data: {ModSerial: document.getElementById('ModSerial').value, SimNo: document.getElementById('SimNo').value}?数据似乎与单击按钮所在的行无关。为什么需要在网格的 每一 行中包含相同的按钮,所有按钮的工作方式都相同? id 为ModSerial和ModSerial的元素在哪里(在 jqGrid 内部或外部)? -
@Oleg 数据依赖于单击按钮的行,因为 ModSerial 和 SimNo 填充了弹出窗口,当单击按钮时,我希望将行 ID 和 modseril 和 simno 传递给操作。如果单击按钮时 ModeSerial 在网格中有值,则文本框的 Moserial 按值填充并在弹出窗口中进行编辑。我的操作(公共 ActionResult EditMet(tblMet met, string ModSerial, string SimNo))。这个弹出窗口正在编辑网格中的一些数据。网格中有 moserial 和 simno 的元素,但我想在弹出窗口中编辑这个元素。
-
对不起,我还是不明白你的问题。 1)
OpenDialog的代码可能会有所帮助。 2)我没有看到您获得 rowid 并转发到addUser或其他函数的代码 3)addUser的代码似乎我错了,因为 不需要$(function() {...});构造超过$.ajax调用。$(function() {...});表示注册文档就绪事件处理程序,但您可能只需要对服务器进行$.ajax调用。 4) 我建议你不要在<button>上使用onclick属性,而是使用beforeSelectRow而不是here。
标签: javascript jquery asp.net-mvc-4 jquery-ui jqgrid