2012-07-09 82 views
0

我在SharePoint 2010 Foundation中有一個SPGridView,其中包含來自子網站的公告。我只有一列,一個HyperLinkField顯示公告的標題,並鏈接到項目的變形。使用JavaScript在SPGridView中使用鏈接打開模態框

使用SPDataSiteQuery收集數據。

我想要的是運行一個JavaScript的鏈接,添加到頁面上的一個內容編輯器Web部件,它將打開一個Modal Box並在其中顯示該變形。

我的代碼目前看起來像下面,並在同一個窗口中成功打開dispform,但我現在想要它調用JavaScript。

HyperLinkField hyperFieldTask = new HyperLinkField(); 
      hyperFieldTask.HeaderText = "News"; 
      hyperFieldTask.DataTextField = "Title"; 

      string[] itemUrl = { "FileDirRef" }; 
      hyperFieldTask.DataNavigateUrlFields = itemUrl; 
      hyperFieldTask.DataNavigateUrlFormatString = ""; 
      hyperFieldTask.SortExpression = "Title"; 

      this.grid.Columns.Add(hyperFieldTask); 

我已經嘗試了幾種解決方案,但我所得到的只是一個不活動的鏈接。

hyperFieldTask.DataNavigateUrlFormatString = "JavaScript:ShowDialog('url')"; 

hyperFieldTask.DataNavigateUrlFields = "JavaScript:ShowDialog('url')"; 

沒有我做的似乎工作。

我錯過了一些明顯的東西嗎?

感謝您的幫助。

編輯:

我嘗試使用NavigateUrl,它確實調用JavaScript。

hyperFieldNews.NavigateUrl = "javascript:ShowDialog('http://www.google.com', '600')"; 

下一步是現在,而不是使用www.google.com作爲url我想使用「FileDirRef」的值。

回答

0

添加下面的JavaScript函數:

<script type="text/javascript"> function ModalPopup(url, title) { var options = SP.UI.$create_DialogOptions(); options.url = url; options.title = title; options.dialogReturnValueCallback = function() { SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK); }; SP.UI.ModalDialog.showModalDialog(options); } </script>

現在你可以創建一個鏈接,並調用該函數:

HyperLink hyper1 = new HyperLink(); string popUpPageUrl = "javascript:ModalPopup('" + url + "','Display Item')"; hyper1.NavigateUrl = popUpPageUrl; hyper1.Text = "News";