2011-11-22 84 views
0

想法很簡單:在SP Designer 2010中創建一個Web部件頁面,該頁面允許創建一個新的列表項目,然後使用CSOM中的一些JavaScript以模態形式彈出頁面來自另一頁的對話框。問題是出現一個對話框,並短暫閃爍表示它正在加載內容,但隨後它消失了,並且我留下了剛剛單擊的網頁的刷新版本。這是我的代碼。 。 。來自JSOM的SharePoint 2010模態對話框不起作用

//attach a click delegate to the table containing the following button(s) 
<button type='button' class='ms-listheaderlabel'>Close</button> 

//on button clicked event, call the following function 
function openModalDialog(dialogPage, closeCallback) { 
    var options = []; 
    options.title = unescape("Close Ticket"); 
    options.allowMaximize = true; 
    options.showClose = true; 
    options.autoSize = true; 
    options.url = dialogPage; 
    options.dialogReturnValueCallback = Function.createDelegate(null, closeCallback); 
    SP.UI.ModalDialog.showModalDialog(options); 
}; 

。 。 。其中dialogPage是我創建的表單(同一站點,SitePages庫)的url,而closeCallback是一個匿名函數,用於處理對話框中的返回值。我試過直接調用頁面,它加載得很好。彈出窗口阻止程序完全關閉。使用IE9並試用了8個兼容模式以及另一臺使用IE8的機器。系統模式工作得很好。那裏有任何想法?

回答

3

我現在正在經歷完全相同的問題。如果我使用

<input type="button" value="Try Me" onclick="openModalDialogBox()" />

它按預期工作是什麼,到目前爲止我發現是。但是,如果我使用asp:按鈕來做同樣的事情,它會失敗。我認爲它可能與回發到服務器有關,但我可能是錯誤的。

我只是切換我的按鈕輸入。

Tim

+0

就是這樣!蒂姆,你是個天才。按鈕的默認類型是「提交」,因此一出現對話框,它就會吸收提交併立即關閉。我添加了type =「button」到我的按鈕,它的工作原理!謝謝! – Toadmyster