ASP.NET:asp:禁用Javascript的LinkBut​​ton?

时间:2009-01-26 16:56:05

标签: javascript asp.net linkbutton

我想使用asp:LinkButton,因为它看起来像一个链接,但也有服务器端点击处理程序。

但是Web服务器似乎无法检测到客户端上是否禁用了javascript,并且没有呈现为仍然有效的机制。

是否可以有一个看似链接的链接,但是有服务器端OnClick事件处理程序?


答案

答案是否定的,但下面是一些解决方法的想法。接受了非零投票的那个。

5 个答案:

答案 0 :(得分:7)

您可以使用CSS将按钮设置为看起来像链接,但这将取决于CSS实现,这将取决于浏览器。


编辑:我被迫完成答案,因为它已被接受。

asp:LinkButton呈现为HTML链接,因此无法发布到网页;但只能提出获取请求。要解决此问题,请使用JavaScript来操作帖子。但是,如果禁用Javascript,则无法执行此操作。

asp:Buttonasp:ImageButton不同。他们通过使用真正的HTML表单元素发布到网页(或取决于表单属性)来提交HTML表单。所以这些都可以在没有JS干预的情

有些浏览器会允许CSS样式将按钮设置为看起来像链接,因此可以用来解决这个问题。

答案 1 :(得分:2)

只是一个想法:

渲染输入按钮并使用javascript将其更改为链接。该按钮适用于非JavaScript启用的浏览器,并成为有javascript的人的链接。

答案 2 :(得分:2)

在ASP.Net中有这样的东西,我通常会渲染控件,以及一个用JavaScript隐藏的“可访问控件”。所以在这种情况下它会呈现一个LinkBut​​ton(默认情况下通过样式隐藏)和一个普通按钮,注册了一些javascript以隐藏Button并显示LinkBut​​ton。

这是ASP.Net控件的一个常见解决方法,如果没有javascript,或者在没有Javascript的情况下需要“Autopostback”时,它的播放效果不佳。

答案 3 :(得分:0)

没有看起来像链接的INPUT类型。如果要使用链接在网页上执行INPUT类型活动,则必须导航到您所在的同一页面。

您可以使用链接传递查询字符串变量,并对其进行响应。它不会完全像回发一样,而只会导航到您所在的同一页面。

答案 4 :(得分:0)

只是为了记录,你所要求的是可能的。

您必须像这样配置控件:

<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)
        {
           //...
        }

您可以找到更详细的信息here