Как получить значение HTML HTML - PullRequest
2 голосов
/ 09 мая 2011

У меня есть список на моей странице aspx, где значения для списка поступают из базы данных. Данные могут быть успешно добавлены в список

Но как я могу получить значение выбранного элемента списка, когда нажимаю на него? (событие ul_Click)

Я не хочу перенаправлять на другую страницу, потому что я использую AJAX. так что я хочу это на той же странице. вот почему я прокомментировал

    <ul runat="server" id="ulList" onclick="ul_Click">
    </ul>

Данные привязываются к списку в событии page_load.

protected void Page_Load(object sender, EventArgs e)
{
    conn = new SqlConnection("Server=NIPUNA-PC\\SQLEXPRESS; Database=XXX; Trusted_Connection=True");
    string[] itemList = authorList();
    foreach (string item in itemList)
    {
        HtmlGenericControl newLi = new HtmlGenericControl("li");
        //newLi.InnerHtml = "<a href=\"Books.aspx?bookId=" + item + "\">" + item + "</a>";
        newLi.InnerText = item;
        ulList.Controls.Add(newLi);
    }
}

Я хочу событие ul_Click ()?

Ответы [ 2 ]

0 голосов
/ 09 мая 2011

добавив к идеалу Роберта вместо того, чтобы дважды включить в разметку элемент, вы можете сделать

<a href=\#"\" onclick=\"javascript:callMyAjaxFunction(this);\">" + item + "</a>

<script language="javascript">
    function callMyAjaxFunction(e){
       alert(e.innerHTML);// do something
    }
</script>
0 голосов
/ 09 мая 2011

похоже, что вы на пути к внутреннему.Вы можете передать какой-то идентификатор со ссылкой.

"<a href=\"Books.aspx?bookId=" + item + "&liID=" + **SOME_ID** + "\">" + item + "</a>";

затем выполните строку запроса и проверьте этот идентификатор.если это так, то вызывать функцию?

Я не уверен на 100%, но то, что вы пытаетесь сделать, может быть невозможно в противном случае с HtmlGenericControl.Я не думаю, что вы можете связать событие onclick с HtmlGenericControl

Возможно, вы выберете другой вариант: ajax / javascript

EDIT>, только что увидев комментарий.так что ... вы могли бы сделать что-то вроде

 "<a href=\"javascript:callMyAjaxFunction(" + item + ");\">" + item + "</a>";

вы могли бы также сделать

"<a href=\#"\" onclick=\"javascript:callMyAjaxFunction(" + item + ");\">" + item + "</a>";

лично мне не нравится последняя версия как <a href="#", потому что это может вызвать проблемы со стороны клиентатакое поведение, как переход на верх страницы или что-то подобное при нажатии.

, просто чтобы обернуть вещи.Имейте в виду, что вам понадобится JavaScript на стороне клиента для обработки функции

<script language="javascript">
    function callMyAjaxFunction(bookid){
       // do something
    }
</script>
...