使用JavaScript从SPGridView中的链接打开Modal Box

时间:2012-07-09 07:54:53

标签: c# javascript sharepoint hyperlink spgridview

我在SharePoint 2010 Foundation中有一个SPGridView,其中包含子网站的公告。我只有一个列,一个显示公告标题的HyperLinkField,以及指向该项目的调度的链接。

使用SPDataSiteQuery收集数据。

我想要的是运行JavaScript的链接,在页面上添加了一个内容编辑器Web部件,它将打开一个模态框,并在其中显示该变形。

我的代码目前如下所示,并在同一个窗口中成功打开了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作为网址而不是使用“FileDirRef”的值。

1 个答案:

答案 0 :(得分: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";