Как распознать HTML ссылку (якорь) в page_load после клика? - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть несколько якорей на моей странице aspx.
мне нужно определить их (можно запустить page_load) в page_load после клика.
как вы знаете, эти якоря не являются обычными элементами управления asp.net, и при нажатии на них Page.IsPostBack всегда ложно.
я не могу использовать кнопки ссылок по некоторым причинам.
Итак, как я могу определить эти якоря в page_load после клика?

спасибо заранее

Ответы [ 2 ]

3 голосов
/ 29 декабря 2011

Что ж, моя единственная идея - использовать параметры в URL и использовать их, чтобы определить, какая гиперссылка была нажата.

<a href="page.aspx?linkName=link1">Link 1</a>
<a href="page.aspx?linkName=link2">Link 2</a>

И в коде позади

string linkName = Request.QueryString["linkName"];
if (linkName = "link1")
{ // something
}

Но по какой причине вы не можете использовать LinkButtons или другие элементы управления? Этот подход был бы более удобным в ASP.NET.

1 голос
/ 29 декабря 2011

Более элегантным способом было бы использовать функцию __doPostBack (она уже есть на каждой странице asp.net) в javascript и установить соответствующий атрибут события и аргумент события.Вот как asp.net контролирует сообщения обратно на сервер

, например.

<a id="LinkButton1" href="javascript:__doPostBack('Anchor1','')">LinkButton</a>

На стороне сервера вы можете обработать событие click следующим образом

protected void Anchor1_Click(object sender, EventArgs e)
{
    Response.Write("Hello World !");
}
...