Почему я получаю SyntaxError: ожидаемое выражение, получил '<) попытку выполнить перенаправление, нажав кнопку в веб-части SharePoint? - PullRequest
0 голосов
/ 10 декабря 2018

Я довольно новичок в SharePoint (я работаю над SharePoint 2013) и .NET , и у меня возникает следующая проблема.

В Веб-часть У меня есть кнопка, и мне нужно вставить перенаправление JavaScript, используя свойство OnClientClick .В моем коде я сделал что-то вроде этого:

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

Этот раздел кода имеетнекоторые проблемы, нажав на мою кнопку, случается, что:

HTTP-запрос POST выполняется на правильный URL:

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 = .... , которая выполняет перенаправление)и этоЯ возвращаюсь к ложному.

Я схожу с ума и не могу понять, что не так ... может быть, какой-то символ или пропущенный побег.

Что не так?Чего мне не хватает?Как я могу исправить эту проблему?

1 Ответ

0 голосов
/ 10 декабря 2018

Я думаю, что ошибка может быть при использовании тегов <script> в значении OnClientClick.Напишите так:

btnApplica.OnClientClick = "var ClickMySuperButton = function() {"
                         + "window.location.href = '" + SPContext.Current.Web.Url + "/MYPROJECTNAME WEBPART/Carica documento.aspx?mode=scelta_campi_facoltativi_etichetta&obj='" +obj 
                         + ";return false;"
                         + "}; ClickMySuperButton();";

или добавьте свой скрипт где-нибудь на странице ascx:

function ClickMySuperButton(){

};

и используйте в коде, как это:

btnApplica.OnClientClick = "ClickMySuperButton();";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...