禁止该回发一个 <ASP:LinkButton>
-
05-07-2019 - |
题
我有一个ASP.NET linkbutton控制在我的形式。我想用它来javascript在客户端,并防止它张贴到服务器。(我想用linkbutton控制,使我的皮肤它,并禁止其在某些情况下,从一直线上升的标签是不是优选的)。
我如何阻止它从张贴回到服务器?
解决方案
ASPX代码:
<asp:LinkButton ID="someID" runat="server" Text="clicky"></asp:LinkButton>
代码背后:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
someID.Attributes.Add("onClick", "return false;");
}
}
HTML呈现的是:
<a onclick="return false;" id="someID" href="javascript:__doPostBack('someID','')">clicky</a>
在这种情况下,会发生的事情是onclick功能成为您的验证器。如果是假,则“href”为“href”。链接未执行;但是,如果确实如此,href将被执行。这消除了你的回复。
其他提示
这可能听起来像一个毫无助益的答案...但是你为什么使用LinkButton东西纯粹是客户机-身边?使用标准HTML锚定设置标签和其 onclick
作为你的Javascript。
如果你需要服务器产生的文本的链接,然后再用一个 asp:Label
作为内容之间的锚点的开始和结束的标签。
如果你需要动态变化的剧本行为基于服务器的端代码,考虑 asp:Literal
作为一个技术。
但是,除非你在做服务器的端活动自击事件的LinkButton,那里只是不似乎是多点使用它在这里。
你也可以这样做
...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...
它会停止链接按钮回发
只需设置href =&quot;#&quot;
即可<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>
我认为你应该调查使用HyperLink控件。它是服务器端控件(因此您可以通过代码操纵可见性等),但它省略了常规的ol'锚标记,并且不会导致回发。
在C#中,你会做这样的事情:
MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");
刚刚通过的这前几分钟,正确的方式做到它是用
OnClientClick
Return False()
如下面的例行代码:
<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false();" Visible="false"/>
仅仅复制这条线从我工作的代码。
而不是实现本属性:
public partial class _Default : System.Web.UI.Page{
protected void Page_Load(object sender, EventArgs e)
{
someID.Attributes.Add("onClick", "return false;");
}}
使用:
OnClientClick="return false;"
内部asp:LinkButton标签
在onclick事件上调用javascript函数。
您是否尝试过使用 OnClientClick
?
var myLinkButton = new LinkButton { Text = "Click Here", OnClientClick = "JavaScript: return false;" };
<asp:LinkButton ID="someID" runat="server" Text="clicky" OnClientClick="JavaScript: return false;"></asp:LinkButton>
你可以做的其他事情,如果你想保留你的滚动位置是这样的:
<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />
您可能还希望客户端函数返回false。
<asp:LinkButton runat="server" id="button" Text="Click Me" OnClick="myfunction();return false;" AutoPostBack="false" />
您可能还会考虑:
<span runat="server" id="clickableSpan" onclick="myfunction();" class="clickable">Click Me</span>
我使用可点击类来设置指针,颜色等等,使其外观类似于锚标记,但我不必担心它会被回发或不得不做href =&quot ;的javascript:无效(0);&QUOT;特技。
为什么不使用空的ajax更新面板并将linkbutton的click事件连接到它?这样只会更新更新面板,从而避免回发并允许您运行您的javascript
似乎没有人这样做:
createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else { this.innerHTML='Please Wait'; }");
这似乎是唯一可行的方式。
在jquery ready函数中,您可以执行以下操作 -
var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);
为了避免刷新的网页,如果 return false
不是工作 asp:LinkButton
使用
href="javascript: void;"
或
href="#"
随着 OnClientClick="return false;"
<asp:LinkButton ID="linkPrint" runat="server" CausesValidation="False" href="javascript: void;"
OnClientClick="javascript:self.print();return false;">Print</asp:LinkButton>
以上是代码将调用浏览器没有打印刷新的网页。
使用html链接而不是asp链接,你可以在服务器端的html链接之间使用标签 控制