sharepoint 2010 弹出模式窗口showModalDialog并返回值returnResult方法
1。创建一个BasePage.aspx页面。
<asp:ContentID="PageHead"ContentPlaceHolderID="PlaceHolderAdditionalPageHead"runat="server"> <script> function showDialog() { var options = { url: "ShowDialogPage.aspx", args: 7, title: "选择页面", dialogReturnValueCallback: dialogCallback }; SP.UI.ModalDialog.showModalDialog(options); } //接收返回值方法 function dialogCallback(dialogResult, returnValue) { //其中dialogResult=1,代表确定,dialogResult=0,代表关闭 if (returnValue != null && dialogResult == 1) { alert(returnValue); //弹出窗口 document.getElementById('<%=ItemID.ClientID %>').value = returnValue; } return; } </script> </asp:Content>
2。创建一个弹出页面。ShowDialogPage.aspx
<asp:ContentID="PageHead"ContentPlaceHolderID="PlaceHolderAdditionalPageHead"runat="server"> <script> //返回值方法 function ReturnPageValue() { window.frameElement.commitPopup(document.getElementById('<%=txtValue.ClientID %>').value); } </script> </asp:Content> <asp:ContentID="Main"ContentPlaceHolderID="PlaceHolderMain"runat="server"> <inputid="txtValue"type="text"runat="server"/> <inputid="BtnOK"type="button"value="确定"onclick="ReturnPageValue();"/> <inputid="BtnClose"type="button"value="关闭"onclick="window.frameElement.cancelPopUp();"/> </asp:Content> <asp:ContentID="PageTitle"ContentPlaceHolderID="PlaceHolderPageTitle"runat="server"> 应用程序页 </asp:Content> <asp:ContentID="PageTitleInTitleArea"ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea"runat="server"> 我的应用程序页 </asp:Content>
3。部署到MOSS环境。
点击选择按钮
弹出ShowDialogPage.aspx页面。
在文本框填写“我是返回值”,点击确定。如下图,“我是返回值”,已经返回到文本框。
关闭弹出窗口的页面有三种方法可以调用:
1,window.frameElement.cancelPopUp(),调用该方法,将关闭窗口。返回值result是:SP.UI.DialogResult.cancel
2.window.frameElement.commitPopup(),调用该方法,将关闭窗口。返回值result是:SP.UI.DialogResult.ok
3.window.frameElement.commonModalDialogClose(),同上,不过返回值是指定的第一个参数。
下面是传回值的示例代码
1,如果是想使用c#实现,注意传回的值是数字7:
- private void CloseDialog()
- {
- string response
- = string.Format(“<script type=’text/javascript’>window.frameElement.commitPopup(\”{0}\”);</script>”, 7);
- Context.Response.Flush();
- Context.Response.End();
- }
2.如果想使用js实现,传回值的值依然是数字7:
<script type=’text/javascript’>window.frameElement.commitPopup(“7”);</script>
下面是BasePage.aspx的接收方法:接收返回值7,并弹出。
- function dialogCallback (dialogResult, returnValue)
- {
- if (returnValue != null) {
- alert(returnValue);//弹出窗口
- }
- return;
- }