我有一个申请页面。我想单击一个按钮弹出另一个应用程序页面中的对话框。对话框显示并迅速消失在空中。对于cource,它没有显示页面的正确上下文。我正在使用SharePoint 2010和Visual Studio 2010.我也使用了母版页。感谢。
<asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
<link href="../Stylesheet.css" rel="stylesheet" type="text/css" />
<SharePoint:ScriptLink runat="server" Name="sp.js" OnDemand="true" LoadAfterUI="true" Localizable="false" />
</asp:Content>
<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
<div id="wrap">
<div id="nav">
<asp:Button ID="Edit" runat="server" Text="Edit" OnClientClick="javascript:Edit_Click()">
</asp:Button>
<script type="text/javascript">
function Edit_Click() {
SP.SOD.executeFunc("sp.js");
var options = SP.UI.$create_DialogOptions();
options.title = "My Dialog Title";
options.width = 400;
options.height = 600;
options.url = "/_layouts/Admin/test.aspx";
SP.UI.ModalDialog.showModalDialog(options);
};
</script>
</div>
答案 0 :(得分:1)
对话框显示然后消失的原因是因为你的asp:Button执行回发。
尝试使用
<asp:Button ID="Edit" runat="server" Text="Edit" OnClientClick="javascript:Edit_Click(); return false;" />
防止回发。
答案 1 :(得分:0)
试试这个兄弟。(..)
function Edit_Click() {
$("#app_setup_wizard_container").dialog({
autoOpen:false,
height: 'auto',
width: 'auto',
resize:false,
modal: true,
position: [1230,220],
url = "/_layouts/Admin/test.aspx";
open: function(event, ui) {
var $dialog = $(event.target);
var position = $dialog.dialog('option', 'position');
$dialog.closest('.ui-dialog').css({
left: position[0],
top: position[1]
});
},
buttons: {
Cancel: function() {
$(this).dialog("close");
}
}