フォームに ASP.NET リンクボタン コントロールがあります。クライアント側のjavascriptに使用し、サーバーにポストバックしないようにしたいと思います。(linkbutton コントロールを使用して、場合によってはそれをスキンして無効にできるようにしたいので、まっすぐなタグは好まれません)。
サーバーにポストバックしないようにするにはどうすればよいですか?
フォームに ASP.NET リンクボタン コントロールがあります。クライアント側の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 機能がバリデーターになります。false の場合、「href」リンクは実行されません。ただし、true の場合、href は実行されます。これにより、ポストバックがなくなります。
これは役に立たない答えのように聞こえるかもしれません...しかし、純粋にクライアント側のものに LinkButton を使用するのはなぜですか? 標準の HTML アンカー タグを使用し、そのonclick
アクションを Javascript に設定します。
サーバーがそのリンクのテキストを生成する必要がある場合はasp:Label
、アンカーの開始タグと終了タグの間のコンテンツとして an を使用します。
サーバー側のコードに基づいてスクリプトの動作を動的に変更する必要がある場合はasp:Literal
、手法として検討してください。
ただし、LinkButton の Click イベントからサーバー側のアクティビティを実行していない限り、ここで使用する意味はないようです。
あなたにもできる
...LinkButton ID="BtnForgotPassword" runat="server" OnClientClick="ChangeText('1');return false"...
そして、リンクボタンのポストバックを停止します
href="#" を設定するだけです
<asp:LinkButton ID="myLink" runat="server" href="#">Click Me</asp:LinkButton>
HyperLink コントロールを使用して調査する必要があると思います。これはサーバー側のコントロール (コードから可視性などを操作できるようにするため) ですが、通常の古いアンカー タグを省略し、ポストバックを引き起こしません。
これを行ったばかりで、それを行う正しい方法は次を使用することです:
OnClientClick
return false
次のコード例のように:
<asp:LinkButton ID="lbtnNext" runat="server" OnClientClick="findAllOccurences(); return false;" />
C# では、次のようにします。
MyButton.Attributes.Add("onclick", "put your javascript here including... return 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イベントでjavaスクリプト関数を呼び出します。
スクロール位置を保持したい場合、他にできることは次のとおりです。
<asp:LinkButton runat="server" id="someId" href="javascript: void;" Text="Click Me" />
を使用しようとしました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>
誰もこのようにやっていないようです:
createEventLinkButton.Attributes.Add("onClick", " if (this.innerHTML == 'Please Wait') { return false; } else { this.innerHTML='Please Wait'; }");
これが機能する唯一の方法のようです。
空の ajax 更新パネルを使用して、linkbutton のクリック イベントをそれに配線してみませんか? このようにして、更新パネルのみが更新されるため、ポストバックが回避され、JavaScript を実行できるようになります。
aspリンクの代わりにhtmlリンクを使用すると、サーバー側の制御のためにhtmlリンクの間にラベルを使用できます
クライアント側の関数が 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);" 騙す。