63

フォームに ASP.NET リンクボタン コントロールがあります。クライアント側のjavascriptに使用し、サーバーにポストバックしないようにしたいと思います。(linkbutton コントロールを使用して、場合によってはそれをスキンして無効にできるようにしたいので、まっすぐなタグは好まれません)。

サーバーにポストバックしないようにするにはどうすればよいですか?

4

17 に答える 17

68

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 機能がバリデーターになります。false の場合、「href」リンクは実行されません。ただし、true の場合、href は実行されます。これにより、ポストバックがなくなります。

于 2008-10-07T01:21:17.303 に答える
40

これは役に立たない答えのように聞こえるかもしれません...しかし、純粋にクライアント側のものに LinkBut​​ton を使用するのはなぜですか? 標準の HTML アンカー タグを使用し、そのonclickアクションを Javascript に設定します。

サーバーがそのリンクのテキストを生成する必要がある場合はasp:Label、アンカーの開始タグと終了タグの間のコンテンツとして an を使用します。

サーバー側のコードに基づいてスクリプトの動作を動的に変更する必要がある場合はasp:Literal、手法として検討してください。

ただし、LinkBut​​ton の Click イベントからサーバー側のアクティビティを実行していない限り、ここで使用する意味はないようです。

于 2008-10-07T02:05:08.993 に答える
26

あなたにもできる

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

そして、リンクボタンのポストバックを停止します

于 2011-02-01T20:06:19.350 に答える
15

href="#" を設定するだけです

<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>
于 2012-05-11T23:07:54.113 に答える
6

HyperLink コントロールを使用して調査する必要があると思います。これはサーバー側のコントロール (コードから可視性などを操作できるようにするため) ですが、通常の古いアンカー タグを省略し、ポストバックを引き起こしません。

于 2008-10-07T02:08:41.687 に答える
6

これを行ったばかりで、それを行う正しい方法は次を使用することです:

  1. OnClientClick
  2. return false

次のコード例のように:

<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false;" />
于 2012-09-28T15:18:21.840 に答える
4

C# では、次のようにします。

MyButton.Attributes.Add("onclick", "put your javascript here including... return false;");
于 2008-10-07T00:43:32.060 に答える
2

属性を実装する代わりに:

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:LinkBut​​ton タグ内

于 2010-10-19T16:04:14.790 に答える
1

onclickイベントでjavaスクリプト関数を呼び出します。

于 2010-09-28T12:16:00.000 に答える
1

スクロール位置を保持したい場合、他にできることは次のとおりです。

<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />
于 2013-11-08T16:25:40.823 に答える
1

を使用しようとしました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>
于 2011-05-19T16:01:13.557 に答える
0

誰もこのようにやっていないようです:

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

これが機能する唯一の方法のようです。

于 2010-02-11T13:49:57.547 に答える
0

空の ajax 更新パネルを使用して、linkbutton のクリック イベントをそれに配線してみませんか? このようにして、更新パネルのみが更新されるため、ポストバックが回避され、JavaScript を実行できるようになります。

于 2010-05-08T18:26:46.333 に答える
-1

aspリンクの代わりにhtmlリンクを使用すると、サーバー側の制御のためにhtmlリンクの間にラベルを使用できます

于 2010-12-22T07:25:14.167 に答える
-1

クライアント側の関数が 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="javascript:void を実行する必要があることを心配する必要はありません。 (0);" 騙す。

于 2008-10-07T00:51:06.833 に答える