2012-02-15 14 views
0

私はasp.net/c#でかなり新しく、jQueryには新しくなっていますので、これが新しい質問であれば私を許してください。c#codebehindのjquery関数をトリガーする

によって定義され、私はjQueryのfancyboxがインストールされている

:私はctl00_wpn_ShowProduct_ctl04_TestAddToCartすべての作品としてレンダリングasp:HyperLink(私はページ上で物事を移動する場合、これが壊れる可能性が実現するが、私がする必要がある]をクリックすると

function pageLoad(sender, args) { 
$("#ctl00_wpm_ShowProduct_ctl04_TestAddToCart").fancybox({ 
    'width' : 600, 
    'height' : 620, 
    'type' : 'iframe' });  
} 

私はそれがうまく動作する前に動作させる)。

私は別のasp:Buttonを持っています。そのページには何らかの処理をしてから、ターゲットのURL(カレンダー)をfancyboxで開きます。元のリンクでクリックすると、fancyboxが再生され、カレンダーURLが開きました。今、私がそれを削除したら、他の6つのタスクを実行した後、ボタンから同じ結果を得るにはどうすればいいですか? jQueryのアクティベーションを結びつけるためのリンクはありません。

codebehindがサーバーでjQueryがクライアントであることは分かっていますが、リンクから作業できる場合はボタンから操作する必要があります。あなたのボタンで

+1

と同じ種類とポストだ、あなたはあなたのページの「ClientIDModeに=静的」を使用する必要があります名前。 http://beyondrelational.com/blogs/hima/archive/2010/07/16/all-about-client-id-mode-in-asp-net-4.aspx –

+0

Zachさんに感謝しますが、私たちのeコマースストアがセットアップされています2.0(古代、それではない!)を使用する。私は確かに私は狂った名前から逃げることができることを望む。 – Deverill

+0

@ 3nigma、私のフォーマットを修正してくれてありがとう。私はそれから学んでいる! – Deverill

答えて

1

あなたがポストバックでJavaScriptを実行したい場合:使用している

をAJAXでこれを行うことができます:

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ScriptKey", "myFunction();", true); 

そうでなければ、これを使用できます:

ClientScriptManager.RegisterClientScriptBlock(this.GetType(), "ButtonClickScript", "myFunction();", true); 

参考文献:

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerstartupscript.aspx

http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx

2

私はクライアント側でClientIDを使用することをお勧めします。

フロントエンドでのみ行うことができる場合は、このような操作を行うことができます。

<asp:Button OnClientClick="LaunchTheFancyBox()" ID=""... /> 

<script> 
    function LaunchTheFancyBox(){ 
     $('#<%=myControl.ClientID%>').fancybox({ 
      'width' : 600, 
      'height' : 620, 
      'type' : 'iframe' 
     });  
    } 
</script> 

注:サーバーからそれを送信する必要がある場合は、あなたがコントロールを通してそれを注入する必要があります。可能であれば、あなたがそれらの狂気のasp.netコントロールを扱っていないように、ここで

はただの提案、質問
http://www.eggheadcafe.com/community/csharp/2/10346901/open-jquery-fancybox-from-codebehind.aspx

関連する問題