繁体   English   中英

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

[英]ASP.NET: asp:LinkButton with Javascript disabled?

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

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

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


回答

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

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


编辑:我觉得有必要完成我的答案,因为它已被接受。

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

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

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

只是一个想法:

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

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

对于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM