Frage

Ich habe ein ASP.NET Linkbutton-Steuerelement auf meiner Form. Ich mag es auf der Client-Seite für Javascript verwenden und verhindern, dass es wieder auf den Server veröffentlichen. (Ich mag das Linkbutton-Steuerelement verwenden, so dass ich es kann die Haut und deaktivieren Sie es in einigen Fällen, so dass ein gerade nach oben Tag nicht bevorzugt ist).

Wie verhindere ich es zurück an den Server zu veröffentlichen?

War es hilfreich?

Lösung

ASPX Code:

<asp:LinkButton ID="someID" runat="server" Text="clicky"></asp:LinkButton>

-Code hinter:

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        someID.Attributes.Add("onClick", "return false;");
    }
}

Was macht als HTML ist:

<a onclick="return false;" id="someID" href="javascript:__doPostBack('someID','')">clicky</a>

In diesem Fall geschieht, was die Onclick Funktionalität Ihr Validator wird. Wenn es falsch ist, wird der „href“ Link nicht ausgeführt; jedoch, wenn es wahr ist, die href erhalten ausgeführt. Dadurch entfällt Ihre Post zurück.

Andere Tipps

Dies mag wie eine wenig hilfreiche Antwort klingt ... Aber warum verwenden Sie einen Linkbutton für etwas rein clientseitige? Verwenden Sie einen Standard-HTML-Anker-Tag und legen Sie seine onclick Aktion auf Ihre Javascript.

Wenn Sie den Server benötigen Sie den Text dieser Verbindung zu erzeugen, dann eine asp:Label als Inhalt zwischen den Tags Beginn und das Ende des Ankers verwendet werden.

Wenn Sie dynamisch das Skript Verhalten auf serverseitigen Code basiert ändern, betrachten asp:Literal als Technik.

Aber es sei denn, Sie tun serverseitige Tätigkeit aus dem Click-Ereignis der Linkbutton, es scheint einfach nicht viel Sinn zu sein, um es hier verwendet wird.

Sie können es auch tun

...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...

Und die Link-Taste Postbacks stoppen

Just gesetzt href = "#"

<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>

Ich denke, man sollte mit einem HyperLink-Steuerelement untersuchen. Es ist eine serverseitige Steuerung (so dass Sie die Sichtbarkeit und solche von Code manipulieren können), aber es läßt einen Anker-Tag ‚regelmäßigen ol und verursacht kein Postbacks.

In C #, können Sie so etwas tun würde:

MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");

Just durchgekaut vor wenigen Minuten, der richtige Weg, es zu tun, ist die Verwendung

  1. OnClientClick
  2. Return False()

wie die folgenden Beispiel Codezeilen:

<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false();" Visible="false"/>

Nur diese Zeile aus meinem Arbeits Code kopiert.

Statt implementieren das Attribut:

public partial class _Default : System.Web.UI.Page{
 protected void Page_Load(object sender, EventArgs e)
 {
    someID.Attributes.Add("onClick", "return false;");
 }}

Verwendung:

OnClientClick="return false;"

innerhalb von asp: Linkbutton-Tag

rufen Sie Javascript-Funktion auf Onclick-Ereignis.

Haben Sie versucht, die OnClientClick zu benutzen?

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>

Etwas anderes Sie tun können, wenn Sie Ihre Bildlaufposition erhalten wollen, ist dies:

<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />

Sie möchten vielleicht auch die clientseitige Funktion haben false zurück.

<asp:LinkButton runat="server" id="button" Text="Click Me" OnClick="myfunction();return false;" AutoPostBack="false" />

Sie auch interessieren könnten:

<span runat="server" id="clickableSpan" onclick="myfunction();" class="clickable">Click Me</span>

Ich verwende die klickbare Klasse Dinge wie Zeiger zu setzen, Farbe, etc., so dass sein Aussehen zu einem Anker-Tag ähnlich ist, aber ich muß den href keine Sorge darüber immer gepostet zurück oder mit tun =“ javascript: void (0);“ Trick.

Warum nicht einen leeren Ajax-Update-Panel und Draht verwenden Sie den Click-Ereignis des Linkbutton, um es? Auf diese Weise nur der Update-Panel wird aktualisiert werden, so dass ein Postbacks zu vermeiden und so dass Sie Ihre Javascript

laufen

Niemand scheint es so zu tun:

createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else {  this.innerHTML='Please Wait'; }");

Dies scheint die einzige Möglichkeit zu sein, die funktionieren.

In der Jquery-Ready-Funktion Sie so etwas wie unten tun können -

var hrefcode = $('a[id*=linkbutton]').attr('href').split(':');
var onclickcode = "javascript: if`(Condition()) {" + hrefcode[1] + ";}";
$('a[id*=linkbutton]').attr('href', onclickcode);

Zur Aktualisierung der Seite zu vermeiden, wenn der return false nicht mit asp:LinkButton Verwendung arbeitet

href="javascript: void;"

oder

href="#"

zusammen mit OnClientClick="return false;"

<asp:LinkButton ID="linkPrint" runat="server" CausesValidation="False" href="javascript: void;"
        OnClientClick="javascript:self.print();return false;">Print</asp:LinkButton>

Oben-Code des Browsers Druck aufrufen, ohne die Seite zu aktualisieren.

Link Verwendung html statt asp Link und Sie können Label zwischen HTML-Link für Server-Seite verwenden Kontrolle

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top