使用jqueryui在mvc 4中打开模态窗口使用jqueryui
我想根据主机页面发送的参数动态加载模态窗口。主机页面将在表格中具有一组编辑链接。点击任何编辑链接应打开一个窗口,其中包含基于发送的行ID的相应数据。下面的代码不起作用。我需要什么样的变化,使以至于当我点击编辑链接,我可以给一个rowid到“dialogMsg” DIV层,使得数据可以动态地放置在它使用jqueryui在mvc 4中打开模态窗口使用jqueryui
<div id="dialogMsg" title="Editing " + StudentFirstName >
Show other student details here
</div>
<table >
<tr>
<td>
James
</td> <td><a href="#" id="editlink">Edit</a></td>
</tr>
<tr>
<td>
John
</td> <td><a href="#" id="editlink">Edit</a></td>
</tr>
<tr>
<td>
Doe
</td> <td><a href="#" id="editlink">Edit</a></td>
</tr>
</table>
<script type="text/javascript">
$(document).ready(function()
{
$("#dialogMsg").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Create an account": function() {
var bValid = true;
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$('#editlink')
.click(function() {
$('#dialogMsg').dialog('open');
});
});
</script>
我已经做了一些改动您的代码:
<div id="dialogMsg" title="Editing ">Show other student details here</div>
<table>
<tr>
<td>James</td>
<td>
<a href="#" class="editlink">Edit</a>
<input type="javascript" class="personId" value="1" />
</td>
</tr>
<tr>
<td>John</td>
<td>
<a href="#" class="editlink">Edit</a>
<input type="javascript" class="personId" value="2" />
</td>
</tr>
<tr>
<td>Doe</td>
<td>
<a href="#" class="editlink">Edit</a>
<input type="javascript" class="personId" value="2" />
</td>
</tr>
</table>
<script type="text/javascript">
$(document).ready(function() {
$("#dialogMsg").dialog({
autoOpen: false,
height: 300,
width: 350,
modal: true,
buttons: {
"Create an account": function() {
var bValid = true;
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
$('.editlink').click(function() {
$('#dialogMsg')
.dialog('option', 'title', "Editing "
+ $(this).closest('tr').find('td:first').text())
.dialog('open');
var personId = $(this).closest('tr').find('.personId').val();
// work it out with the ID here
});
});
</script>
变化做:
移动的标题给JavaScript。您不能像这样设置标题属性
<div id="dialogMsg" title="Editing " + StudentFirstName >
。更改
Edit
链接的id
属性为class
属性。对于页面中的每个元素,id
必须是唯一的。在JavaScript中设置对话框标题。
$(this).closest('tr').find('td:first').text()).dialog('open');
。在这里,我获取最近的父代tr
标签并获取第一个td
子标签的文本。
编辑:
增加了对CSS类ID隐藏字段。该类可以在jQuery select中用于获取ID。
谢谢。现在显示标题。我如何传递该记录的行ID?行ID不会显示在网格上。但我仍然需要将id发送到模态窗口,以便从数据库中提取记录细节并将其显示在模态窗口中。 – user20358 2013-05-07 19:24:59
'$(this).closest('tr')'返回表中选定的行。您可以在ID的每一行都有一个隐藏字段。然后你可以使用'$(this).closest('tr')。find('input [type = hidden]')。val()'来获得ID。您可以将其保存在一个变量中,并在用户单击该按钮时使用它。 – ManojRK 2013-05-08 08:29:49
谢谢,编辑你的答案,我会把它标记为正确的..顺便说一句,如果该行有多种输入类型? – user20358 2013-05-12 09:15:47
您可以从部分视图填充对话框消息,然后使用ajax编辑链接。 – lopezbertoni 2013-05-06 21:20:05
看看他的问题:http://stackoverflow.com/questions/15959639/return-partialview-from-jsonresult-actionmethod-back-to-ajax-post-and-display-th/15960456#15960456 – lopezbertoni 2013-05-06 21:25:32