妳出現這個錯誤是因為妳沒有了解ASP.NET的工作原理。ASP.Net 和php,jsp ,asp等服務器語言壹樣 都是為了生成可供瀏覽器解析的頁面,而可供瀏覽器解析的語言只有HTML。
1,如果妳在aspx頁面中插入壹個asp:LinkButton 那麽運行頁面後 在瀏覽器中查看源代碼妳會發現這個標簽實際被轉為了壹個<a>標簽。
2,為什麽妳的寫法不會轉換呢?因為首先 傳遞給Literal1.Text 的值在asp.net中作為壹段字符串被直接輸出到瀏覽器中。那麽妳的寫法到瀏覽器後源代碼中仍然是壹個asp:LinkButton 標簽,而這個標簽是無法被瀏覽器正確解析的。
解決辦法:
知道了原因,那麽如果非要按照妳的寫法去寫,那麽應該是這樣的:
Literal1.Text = "<li>" + ((users)Session["users"]).Name.ToString() + "</li><li> </li><li><a ID='LinkButton1' onclick='LinkButton1_Click1'>註銷</a></li><li> </li><li>信息修改</li><li> </li>";
但是當妳修改完後發現點擊註銷按鈕依然不能執行!為什麽呢?
因為妳的LinkButton1_Click1 事件並沒有在asp.net中被解析為可供瀏覽器識別的js代碼。
如何解決?
在aspx頁面中寫壹個asp:LinkButton按鈕:
<asp:LinkButton ID='LinkButton2' runat='server' onclick='LinkButton1_Click1'>註銷</asp:LinkButton>
運行頁面,查看源代碼 看看這個新加的註銷按鈕被解析為了什麽html代碼,大概如下
<a id="LinkButton2" onclick="xxxxx"></a>
將新加的linkbutton 設置不可見屬性
<asp:LinkButton ID='LinkButton2' runat='server' visible="false" onclick='LinkButton1_Click1'>註銷</asp:LinkButton>
重新修改後臺代碼
Literal1.Text = "<li>" + ((users)Session["users"]).Name.ToString() + "</li><li> </li><li><a ID='LinkButton1' onclick='xxxxx'>註銷</a></li><li> </li><li>信息修改</li><li> </li>";
//也就是將標簽的js事件綁定到那個隱藏的註銷按鈕事件上。
希望對妳有幫助