我在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”的值。
答案 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";