2011-05-09 42 views
2

我在我的aspx頁面中有一個列表,其中列表的值來自數據庫。數據可以成功添加到列表中如何檢索html li值

但是,如何檢索選定列表項的值,當我點擊它? (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

我不想重定向到另一個頁面,因爲我使用的是AJAX。所以我想在同一頁面。這就是爲什麼我評論 Nipuna 2011-05-09 04:03:43

回答

0

看起來像你正在跟上innerHtml的事情。你可以通過鏈接傳遞某種ID。

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

然後做一個請求查詢字符串並檢查該ID。如果它在那裏,然後調用一個函數?

我不是100%確定的,但是你想要做的事可能不可能用HtmlGenericControl。我不認爲你可以綁定一個onclick事件HtmlGenericControl

您的另一種選擇也許是使用Ajax/JavaScript的

編輯去>剛纔看到的評論。所以....你可以做這樣的事情

"<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> 
0

添加到羅伯特的理想,而不是包括項目兩次在標記,你可能會做

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

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