2009-04-01 15 views
2

リンクをプログラムでクリックすると、ユーザーがクリックしたときと同じ効果が得られますか?ASP.NET 2.0 - プログラムでリンクをクリックする必要がある

例:

私は、ASP.NET LinkBut​​tonコントロールを持っている:

<asp:LinkButton id="lnkExport" runat="server" CssClass="navclass">Export</asp:LinkButton> 

私はそれでこのLinkBut​​tonコントロールを持っている.aspxページに演出サイドバー上のリンクを持っています。いろいろな理由で、ページがリフレッシュされるまでLinkBut​​tonのコードを実行することはできません。ページが完全にロードされると、このLinkBut​​tonをコード内で強制的にクリックする方法を探しています。これを達成するための簡単な方法がありますか?可能な場合は、コードサンプルを提供してください。ありがとう。

+0

私は自分のコードビハインドでC#を使用しています。 – n2009

+0

なぜリダイレクトしないのですか? – epochwolf

+0

HTTP応答オブジェクトを使用してファイルをダウンロードしていますので、リダイレクトはオプションではありません。さらに、このページを指し示すリンクは、アプリケーションによって生成されるのではなく、XMLファイルからリンクを生成する外部アプリケーションによって生成されます。 – n2009

答えて

0

ラシャックのポストショーのやり方。あなたはちょうどjavascriptでそれを行うことができます。


function ClickLink() { 
    document.getElementById('').click(); 
} 

あなたは、これはいくつかの他のイベントの後に発火したい場合は、ページのロード時にクライアント側でその関数の呼び出しを追加するためのC#のコードを追加することができます。


Page.ClientScript.RegisterStartupScript(
    this.getType(), 
    "clickLink", 
    "ClickLink();", 
    true); 
+0

これはリンクをクリックしても問題は解決しませんでした。最終的に私はそこに直接的な解決策はないと思うが、ダウンロードされたファイルを新しいダイアログボックスにリンクして開くと、それはほぼ同様に機能することが分かった(閉じなければならない余分なダイアログウィンドウを除いて)。 – n2009

+0

良い解決策。私は仮定:this.getType()this.GetType()する必要があります –

0

なぜプログラムでリンクをクリックしたいのですが、あなたのページを読み込む必要があるのか​​分かりません。私はそのページにリダイレクトするために、サーバー側でResponse.Redirect()を使用することをお勧めします。他の酌量すべき理由がある場合には、この単純なアプローチが動作しませんわからない...

--Matt

1

リンクをプログラム的にクリックイベントをトリガすると、デフォルトのアクション「onclickの」イベントをトリガしませんが、 (href)。

リンクボタンはhrefとして出てくるので、Javascriptでこれをやってみることができます。

var lnkExport = document.getElementById('<%= lnkExport.ClientID %>'); 
if(lnkExport){ 
    window.location = lnkExport.href; 
} 
0
<button onclick="document.getElementById('<%=this.lnkExport.ClienID%>').click()"> 
click me</button> 
0

私はあなたが言っているのか理解していれば:あなたがする必要があるとき

<asp:LinkButton id="lnkExport" runat="server" CssClass="navclass" onclick="lnkExport_Click">Export</asp:LinkButton> 

は、あなたの分離コードまたはたびに次のように呼び出して...

lnkExport_Click(null, null); 

とlnkExport_Clickを配線していることを確認してください。

protected void lnkExport_Click(object sender, EventArgs e) 
{ 
//DO Whatever here 
} 
1

確かに、あなたが説明したように結論づけるように設計と実装の欠陥があると私は確信しています。

clickイベントを呼び出すと、イベント登録メソッドが実行されるだけです。

だから、私はのだと思うことができます最悪の提案は、ちょうどあなたのようなクリックイベントを発生する欲しいもの時点での機能、

lnkExport_Click(lnkExport、新しいのEventArgs())を呼び出します。

関連する問題