[英]ASP.NET: asp:LinkButton with Javascript disabled?
我想使用asp:LinkButton
,因為它看起來像一個鏈接,但也有服務器端點擊處理程序。
但是,Web服務器似乎無法檢測到客戶端上是否禁用了javascript,並且無法呈現為仍然有效的機制。
是否有可能有一個看起來像鏈接,但有服務器端OnClick事件處理程序的鏈接?
答案是否定的,但下面是一些解決方法的想法。 接受了非零向上投票的那個。
您可以使用CSS將按鈕設置為看起來像鏈接,但這將取決於CSS實現,這將取決於瀏覽器。
編輯:我覺得有必要完成我的答案,因為它已被接受。
asp:LinkButton
呈現為HTML鏈接,因此無法發布到網頁; 但只能使GET請求。 要解決此問題,請使用JavaScript來操作帖子。 但是,如果禁用Javascript,則無法執行此操作。
asp:Button
和asp:ImageButton
是不同的。 他們通過使用真正的HTML表單元素發布到網頁(或取決於表單屬性)來提交HTML表單。 所以這些都可以在沒有JS干預的情
有些瀏覽器會允許CSS樣式將按鈕設置為看起來像鏈接,因此這可以用來解決問題。
只是一個想法:
渲染輸入按鈕並使用javascript將其更改為鏈接。 該按鈕適用於非啟用javascript的瀏覽器,並成為擁有javascript的用戶的鏈接。
在ASP.Net中有這樣的東西,我通常會渲染控件,以及一個用JavaScript隱藏的“可訪問控件”。 因此,在這種情況下,它將呈現一個LinkButton(默認情況下通過樣式隱藏)和一個普通按鈕,注冊了一些javascript以隱藏Button並顯示LinkButton。
對於ASP.Net控件而言,這是一個非常常見的解決方法,如果沒有javascript,或者在沒有Javascript的情況下需要“Autopostback”時效果不佳。
沒有INPUT類型看起來像鏈接。 如果要使用鏈接在網頁上執行INPUT類型活動,則必須導航到您所在的同一頁面。
您可以使用鏈接傳遞查詢字符串變量,並對其進行響應。 它不會完全像回發一樣,而只會導航到您所在的同一頁面。
只是為了記錄,你所要求的是可能的。
您必須像這樣配置控件:
<asp:LinkButton ID="lbtnRequestReview" Text="[ Request Plan Review ]" OnCommand="lbtnRequestReview_Command" CommandName="cmd" CommandArgument="0" CausesValidation="false" runat="server"/>
把它放在代碼隱藏中:
protected void lbtnRequestReview_Command(Object sender, CommandEventArgs e)
{
//...
}
您可以在此處找到更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.