[英]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.