クリックすると別のタブを開くボタンをクリックしたいと思っています。私の場合、これは2つのASP.Net
コントロールを使用して実行され、asp literal
と<form>
というタグが1つの送信ボタンとしてフォーマットされています。なぜなら、それはいくつかのPOST
機能を持つ必要があるからです。新しいタブを開くには、与えられたURL
と_blank
とASP.NET Webフォームで最新のページを更新せずにクリックすると別のタブを開く方法は?
<input type='submit' id='openWindowButton' value = 'Open window'>
:asp literal
内のコードは次のようになります。 私は今度は別のaspコントロールLinkButton
をクリックしてイベントを実行し、asp literal
のjavascript
コードを使ってクリックをトリガーします。私は上記のコードでasp literal
を移入するいくつかのコードを、実行する必要が
<asp:LinkButton ID="literalID" OnClick="DoStuff" runat="server">Do stuff</asp:LinkButton>
イベントDoStuff
で、それが終了した後、それはこのようなopenWindowButton
IDと、送信ボタンをクリックしてトリガー:それは次のようになります。
function InvokeReportFormClick() {
document.getElementById("openWindowButton").click();
return false;
}
クリックのコードにはScriptManager.RegisterStartupScript
メソッドが追加されています。
すべてがうまくいけば、LinkButtonはリテラルに値を設定してクリックし、リテラルはタブを開きます。唯一の問題は、ページがリロードされ、この動作を避けたいということです。 私はスクリプトの最後にfalseを返そうとしましたが、上記のようにjavascriptメソッドからfalseが返された場合、ページはまだリロードされ、asp literal
の生成されたクリックのためだと思います。
<input type='submit' id='openWindowButton' value = 'Open window' onclick="return false;">
が、それは私が必要なタブを開いてから停止します。私は追加することができます
私は次のようにasp literal
入力の上のonclickイベントにfalseを返し追加します。
私はまた、このサンプルのようにUpdatePanel
コントロールにasp:Linkbutton
を入れて試してみました:
<asp:ScriptManager runat="server" ID="reportScriptManager">
</asp:ScriptManager>
<asp:UpdatePanel ID="updatePanelID" runat="server">
<ContentTemplate>
<asp:LinkButton ID="literalID" OnClick="DoStuff" runat="server">Do stuff</asp:LinkButton>
</ContentTemplate>
</asp:UpdatePanel>
しかし、私はまだasp literal
クリックから推測すると、それはまだ、ページを更新。私はLinkButton
の隣ASPリテラルを追加する場合と、ページが更新されませんが、私はページがリロードされませんので、それが起こる、とasp literal
テキストがロードされていないと思いますどの
Uncaught TypeError: Cannot read property 'click' of null.
というエラーを取得しますクリックアクションが発生したときにページ内に表示されます。
ページのリロードを停止しても、これらのボタンと同じ機能を維持するにはどうすればよいですか? よろしくお願いいたします。
EDITは
私はそれに簡単な手動クリックすると、フォームをリロードしないasp literal
から作られた提出のボタンが唯一の新しいタブを開くと述べています。したがって、この場合の主な問題は、asp LinkButton
をページリロードをトリガーしないようにすることだけです。.csファイルで
asp.net forumに提案されたとして、私は、LinkButtonコントロールをクリックした後runnedすることが私のスクリプトを登録するには、このメソッドを使用していますファイル:
RegisterStartupScript(Page page, Type type, string key, string script, bool addScriptTags)
この問題は、あなたがイベントバブルを起こしているからだと思います - http://stackoverflow.com/questions/25092840/how-to-prevent-bubbling-for-form-submit –
@ MerlynMorgan-Graham返信ありがとう、私は両方のボタンのデフォルトを防ぐために使用しようとしましたが、働いていない、ページはまだリロード – meJustAndrew