我看过的每个地方都展示了如何使用#name格式从后面的代码执行jQuery对话框的示例,但是当创建对话框时,我无法找到有关如何执行jQuery对话框的指导一堂课。
我的场景如下:带有gridview的vb.net web应用程序来呈现数据。当用户单击一行中的按钮,而不是直接在gridview中编辑行时,我想打开一个jQuery对话框,显示当前行数据。
在代码背后,我填充了与应与jQuery对话框关联的DIV相关联的文本框。到目前为止一切都很好。
我的问题是表单确实有几个用于显示数据的网格视图,其中一些需要在对话框中编辑数据。因此,我没有为每个需要编辑的gridview创建一个jQuery对话框,而是创建了一个与类关联的jQuery对话框。
jQuery如下:
function FadingDialogAttachmentOpen(vDivId, vWidth) {
$('#' + vDivId).dialog("open");
if (vWidth == null) { vWidth = 300 };
$('#' + vDivId).dialog("option", "width", vWidth);
return false;
};
function FadingDialogAttachmentClose(vDivId) {
$('#' + vDivId).dialog("close");
};
$(document).ready(function () {
$('.FadingDialog').dialog({
dialogClass: 'dialog_xms',
modal: true,
autoOpen: false,
close: false,
dragabble: true,
resizable: false,
show: 'fade',
hide: 'fade',
width: 300,
open: function (type, data) {
$(this).parent().appendTo('form');
},
buttons: {
Cancelar: function () {
f_tcalCancel();
var a = this;
$(this).dialog('close');
},
Ok: function () {
var a = this;
var btnId = $(this).attr('data-idButton');
$(this).dialog("close");
$('#MainContent_' + btnId).click();
}
}
});
});
后面的表单代码,我使用以下内容:Page.ClientScript.RegisterStartupScript(Me.GetType(), "Popup", "FadingDialogAttachmentOpen('dialogEditPayments',500);", True)
我的问题是在创建对话框之前“open”正在触发。如果我将jQuery中的代码更改为#name格式,则会显示对话框。
任何想法都会非常感激。
此致,Ariel
答案 0 :(得分:0)
我终于想出了这个。实际上很容易实现。我以为我会分享它,以防其他人面临同样的问题。最终的解决方案如下:
用于创建用作对话框内容的DIV的HTML如下:
<div id="ThisIsATest1" class="FadingDialog" title="Dialog Box Example 1">
This is a test
</div>
<div id="ThisIsATest2" class="FadingDialog" title="Dialog Box Example 2"
data-idButton="btnDialog">
This is another test
</div>
从每个按钮的代码后面,使用以下句子:
Page.ClientScript.RegisterStartupScript(Me.GetType(),“Popup”,“$(function() {$('。FadingDialog')。dialog(); FadingDialogAttachmentOpen('&amp; pDivId&amp;“',”&amp; pWidth.ToString &安培; “);});”,True)
将pDivId替换为要显示的相应DIV的ID;将pWith.ToString替换为您希望对话框为
或者,您可以在Module中放置相同的句子,并调用一个为您放置clientscript指令的子句(因此您不必为每个对话框执行此操作),如下所示:
Public Sub fxDialogBox(pDivId As String, pWidth As Integer)
Dim vPage As Page = HttpContext.Current.Handler
vPage.ClientScript.RegisterStartupScript(Me.GetType(), "Popup", "$(function()
{$('.FadingDialog').dialog();FadingDialogAttachmentOpen('" & pDivId & "'," &
pWidth.ToString & ");});", True)
End Sub
在后面的每个按钮代码中,您可以调用这样的函数:fx.fxDialogBox("ThisIsATest2", 700)
享受