0

我在 SharePoint 2010 Foundation 中有一个 SPGridView,其中包含来自子网站的公告。我只有一列,一个 HyperLinkField,它显示公告的标题和指向项目显示的链接。

使用 SPDataSiteQuery 收集数据。

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

我的代码目前如下所示,并在同一窗口中成功打开了 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”的值。

4

1 回答 1

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";

于 2012-10-02T21:13:50.840 回答