我有一个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;");

刚刚通过的这前几分钟,正确的方式做到它是用

  1. OnClientClick
  2. 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链接之间使用标签 控制

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top