【发布时间】:2019-05-11 17:47:58
【问题描述】:
我是 SharePoint(我正在使用 SharePoint 2013)和 .NET 的新手,遇到以下问题。
进入 Web 部件 我有一个按钮,我必须使用 OnClientClick 属性插入 JavaScript 重定向。在我的代码中,我做了这样的事情:
ImageButton btnApplica = new ImageButton();
btnApplica.ToolTip = "Documento in Entrata";
//btnApplica.Click += btnApplica_Click_Scelta_Campi_Etichetta;
btnApplica.OnClientClick = "<script>"
+ "function() {"
+ "window.location.href = '" + SPContext.Current.Web.Url + "/MYPROJECTNAME WEBPART/Carica documento.aspx?mode=scelta_campi_facoltativi_etichetta&obj='" +obj
+ ";return false;"
+ "}"
+ "</script>";
//btnApplica.Click += btnApplica_Click;
//openButton.OnClientClick = "return false;";
btnApplica.ID = "btnEntrata";
btnApplica.ImageUrl = "/_layouts/15/images/myprojectname/Default/Ribbon/DocEntrataRibbon.png";
LinkButton text = new LinkButton();
text.Text = "Documento in Entrata";
text.ID = "btnEntrataTxt";
text.Width = 80;
//text.Click += btnApplica_Click;
//text.Click += btnApplica_Click_Scelta_Campi_Etichetta;
buttondiv.Controls.Add(btnApplica);
buttondiv.Controls.Add(new LiteralControl("<br/>"));
buttondiv.Controls.Add(text);
ribbondiv.Controls.Add(buttondiv);
如您所见,我正在尝试创建“客户端内”重定向,因此我在此按钮上使用了 OnClientClick 属性。我定义了一个简单的 JavaScript 函数来执行以 return false 结尾的重定向,以避免在单击按钮后重新加载整个页面,这个:
btnApplica.OnClientClick = "<script>"
+ "function() {"
+ "window.location.href = '" + SPContext.Current.Web.Url + "/MYPROJECTNAME WEBPART/Carica documento.aspx?mode=scelta_campi_facoltativi_etichetta&obj='" +obj
+ ";return false;"
+ "}"
+ "</script>";
此代码部分有问题,单击我的按钮会发生这种情况:
对正确的 URL 执行 HTTP POST 请求:
http://mymachine:8080/Protocollo/pg/MYPROJECTNAME WEBPART/Carica documento.aspx?mode=ant&obj=17&IsDlg=1
(我在 Firefox 的“网络”选项卡上看到它,在我看来这绝对正确)
但页面已完全刷新(所以我没有获得我期望的部分替换)。
查看 JavaScrip 浏览器控制台,我收到以下错误消息:
SyntaxError: expected expression, got '<'
所以我认为定义我的简单 JavaScript 函数的第二个语句时出了点问题(return false)。
我在做:
+ ";return false;"
因为我附加了 ; 符号来表示前一个语句是完整的(执行重定向的 window.location.href=....)和后面跟着 return false。
我快疯了,我不明白出了什么问题……也许是一些符号或错过了逃脱。
怎么了?我错过了什么?我该如何解决这个问题?
【问题讨论】:
-
我希望
OnClientClick在标记中转换为onclick,这需要 JavaScript 代码,而不是<script>标记。该错误可能准确地表明,第一个字符 ('
标签: c# .net sharepoint sharepoint-2013 web-parts