Управление сервером и сборка HTML - ASP.NET - PullRequest
0 голосов
/ 26 января 2011

Я отображаю HTML, возвращенный из вызова ajax, и в настоящее время использую простые элементы управления html, и строка, возвращаемая из вызова ajax, выглядит следующим образом:

string s = "<tr><td><a href=\"#\">MyLink</a></td></tr>";

Теперь, при нажатии на эти ссылкивыполнить некоторую обработку на стороне сервера, чтобы определить, куда мне нужно перейти и получить другую информацию.Насколько я понимаю, я не могу использовать <asp:linkbutton /> в этой строке HTML, которую я строю.

Как сделать серверный вызов, если я не хочу использовать ajax.

Ответы [ 2 ]

1 голос
/ 26 января 2011

Вам не обязательно использовать серверные элементы управления ASP .NET для включения серверной логики в постбэк.Ссылка, для которой вы вручную строите HTML и возвращаете в вызове AJAX, может направить пользователя к HttpHandler (или даже странице aspx) и передать необходимые значения этому обработчику / странице в строке запроса.Тогда этот обработчик / страница может выполнять свою серверную логику и перенаправлять по мере необходимости.

Может быть, я неправильно понял проблему?Есть ли конкретная причина, по которой вы хотите использовать LinkButton?

0 голосов
/ 26 января 2011

Напишите функцию javascript и вызовите ее из клика по каждой ссылке следующим образом:

<a href="#" onclick="someFunc(this)">My Link</a>

someFunc может затем установить в скрытом поле ввода значение, на которое сервер будет реагировать.Это может быть что угодно из элемента link (текст ссылки, значение атрибута, указанное вами в ответе AJAX и т. Д.).В конце функции вызовите form1.submit ();

function someFunc(link){
  var hiddenInput = document.getElementById("ClickedLink");
  hiddenInput.value = link.innerText;
  form1.submit();
}

Затем на сервере, в вашей On_Load в коде:

if(ClickedLink.Value != ""){
  ProcessLinkClick(ClickedLink.Value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...