我的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()事件吗?
答案 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>