Как получить доступ к управлению страницей из статического метода в ASP .NET для написания динамического скрипта
Я использовал ajax для вызова веб-метода, и в этом веб-методе также называется статическим методом для создания динамического скрипта. Прямо в этот момент требуется написать в
Что я уже пробовал:
I've used ajax to call web method and within that web method also called static method to generate dynamic script. Right at this moment it's required to write in <div> control which is required to access the control to do so from that static method. But can't access the control. Please note that I'm also using master page. Can anyone help me to identify the solution to access the <div> control from static method in code behind.
F-ES Sitecore
Ваши серверные элементы управления доступны только для использования во время обратной передачи. При использовании ajax единственное, что доступно вашему серверному коду, - это то, что вы передаете в метод ajax, и точно так же единственный ответ, который вы можете дать, - это передать данные обратно в метод ajax, вы не можете обновить элементы управления из своего метода ajax.
Чтобы обновить страницу, вам нужно будет сделать это с помощью javascript, когда метод ajax завершится. Webmethod должен будет вернуть новую метку, текст или что-то еще, и ваш js должен будет обновить страницу соответствующим образом, когда метод вернется.
Alamgir Hossan
Спасибо за ваш ответ. Да, я пересмотрел код и, основываясь на ваших комментариях, вернул динамический контент, а также ссылки на JavaScript из веб-метода. Я попытался написать этот контент с помощью JavaScript и обнаружил, что возвращаемое значение веб-метода является правильным. Кроме того, JavaScript сделал свою работу и проверил через alert и нашел ok, что требуется для меня. Но в веб-интерфейсе это не отражает результат. Когда я непосредственно пишу HTML-код, независимо от того, что написано через JavaScript, это дает результат в веб-интерфейсе.
Ниже приведен метод Ajax и код JavaScript для вашего обзора -
функция AddDivContent(QCode) {
$.Аякс({
тип: "пост",
тип данных: "json",
contentType: "application/json; charset=utf-8",
URL-адрес: "DashboardSurveyDynamic.aspx-и GenerateDivControl",
данные: "{'QCode':'" + QCode + "'}",
успех: функция (успех) {
ВАР ltrContent = документ.метода getElementById('PageBody_divContent');
тревога("а");
ltrContent.innerHTML будет = формат JSON.преобразовать в строки ("успех".д);
оповещения(ltrContent.innerHTML будет);
},
ошибка: функция (xhr, textStatus, error) {
Alert("ошибка:" + ошибка);
}
});
}
функция AddScriptContent(QCode) {
предупреждение("Б");
$.Аякс({
тип: "пост",
тип данных: "json",
contentType: "application/json; charset=utf-8",
URL-адрес: "DashboardSurveyDynamic.aspx-и GenerateDashboardScript",
данные: "{'QuesCode':'" + QCode + "'}",
успех: функция (успех) {
предупреждение("с");
var scriptContent = document.getElementById('PageBody_divScript');
scriptContent.innerHTML будет = формат JSON.преобразовать в строки ("успех".д);
},
ошибка: функция (xhr, textStatus, error) {
Alert("ошибка:" + ошибка);
}
});
Когда я попытался получить написанный контент через view page source из браузера, ни один код не был найден в уважаемой области, где я хотел написать HTML-код. Ниже приведен HTML-код для вашего обзора -
//
AddDivContent AJAX будут писать HTML-код, вот код, который был вернуться из веб-метода
//
//
AddScriptContent Ajax напишет код возврата из веб-метода
//
Дайте мне знать, не пропущу ли я что-нибудь или нет, и как я могу решить эту проблему?