Asp.net mvc 3 asp.net mvc3中的jquery ui对话框不';我不能第二次开门
当我点击表单中的NewTrade按钮时,它会打开jQueryUI对话框。但是,我在gridview中有link按钮,当我单击link按钮时,它会打开jquery ui对话框,在单击new trade按钮之前,它会打开jquery ui对话框。但是,单击新交易按钮后,如果我在gridview中单击链接按钮,它将调用“ViewTradeDialog(id)”函数,对话框不会打开,它会显示错误消息“$vwdia.html(数据)。dialog不是函数”。我的代码如下:Asp.net mvc 3 asp.net mvc3中的jquery ui对话框不';我不能第二次开门,asp.net-mvc-3,jquery-ui-dialog,Asp.net Mvc 3,Jquery Ui Dialog,当我点击表单中的NewTrade按钮时,它会打开jQueryUI对话框。但是,我在gridview中有link按钮,当我单击link按钮时,它会打开jquery ui对话框,在单击new trade按钮之前,它会打开jquery ui对话框。但是,单击新交易按钮后,如果我在gridview中单击链接按钮,它将调用“ViewTradeDialog(id)”函数,对话框不会打开,它会显示错误消息“$vwdia.html(数据)。dialog不是函数”。我的代码如下: @using (Html
@using (Html.BeginForm("NewTrade", "Trade", FormMethod.Post, new { id = "searchForm" }))
{
<div id="searchbtn">
<input id="btn_newtrade" type="submit" value="New Trade" />
</div>
}
jquery code
<script type="text/javascript">
$(function () {
var $loading = $('<img src="../../loading.gif" alt="loading">');
var $dialog = $('<div></div>').append($loading);
$('#searchForm').submit(function (e) {
var url = this.action;
$.ajax({
autoOpen: false,
url: url,
success: function (data) {
$dialog.html(data).dialog({
zIndex:1,
width: 1400,
height: 600,
resizable: false,
title: 'New Trade Details',
modal: true,
buttons: {
"close": function () {
$dialog.dialog('close');
},
"Add Trade": function () {
$dialog.dialog('close');
$.ajax({
type: 'POST',
url: url
});
}
}
});
}
});
return false;
});
});
function ViewTradeDialog(id) {
alert(id);
var $vwdia = $('<div></div>');
var url = '/Trade/ViewTrades?tradeid=' + id;
$.ajax({
url: url,
success: function (data) {
$vwdia.html(data).dialog({
width: 600,
height: 600,
resizable: false,
title: 'View Trade Details',
modal: false,
buttons: {
"close": function () {
$vwdia.dialog('close');
}
}
});
}
});
return false;
}
@使用(Html.BeginForm(“NewTrade”,“Trade”,FormMethod.Post,new{id=“searchForm”}))
{
}
jquery代码
$(函数(){
变量$loading=$('');
var$dialog=$('').append($loading);
$('#searchForm')。提交(函数(e){
var url=this.action;
$.ajax({
自动打开:错误,
url:url,
成功:功能(数据){
$dialog.html(数据).dialog({
zIndex:1,
宽度:1400,
身高:600,
可调整大小:false,
标题:"新交易详情",,
莫代尔:是的,
按钮:{
“关闭”:函数(){
$dialog.dialog('close');
},
“添加交易”:函数(){
$dialog.dialog('close');
$.ajax({
键入:“POST”,
url:url
});
}
}
});
}
});
返回false;
});
});
函数ViewTradeDialog(id){
警报(id);
变量$vwdia=$('');
var url='/Trade/ViewTrades?tradeid='+id;
$.ajax({
url:url,
成功:功能(数据){
$vwdia.html(数据).dialog({
宽度:600,
身高:600,
可调整大小:false,
标题:“查看交易详情”,
莫代尔:错,
按钮:{
“关闭”:函数(){
$vwdia.dialog(“关闭”);
}
}
});
}
});
返回false;
}
每次单击“新建交易”时,您可能会覆盖对话框插件,因为它应用于同一元素:
$dialog.html(data).dialog(...
通过替换对话框的html并重新应用插件,它可能会被破坏。您是否在JS控制台中看到任何其他错误?我没有时间向您修复它,但我想说的是,我更喜欢将对话框分离出来,并在页面上修复它们,而不是像您那样动态创建对话框。我会让我的对话div在页面上活动,只需在document.ready将它们连接起来一次,然后在需要时打开和关闭它们。这样做可能会解决你的问题。