如何检索html li值

时间:2011-05-09 03:54:14

标签: c# asp.net html html-lists

我的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 :(得分:0)

看起来你正在使用innerHtml的东西。您可以通过链接传递某种ID。

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

然后执行请求查询字符串并检查该ID。如果它在那里,那么调用一个函数?

我不是百分百肯定,但是你想要做的事情可能与HtmlGenericControl无关。我认为你不能将onclick事件绑定到HtmlGenericControl

您的另一个选择可能是使用ajax / javascript

编辑&gt;刚看到评论。所以....你可能会做像

这样的事情
 "<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>

答案 1 :(得分:0)

添加罗伯特的理想而不是在标记中包含两次项目,你可能会这样做

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

<script language="javascript">
    function callMyAjaxFunction(e){
       alert(e.innerHTML);// do something
    }
</script>