2011-01-20 31 views
2

私はUpdatePanelの中​​にあるユーザーコントロールを使って作業しています。ユーザーコントロールはswfobjectを使用して、ユーザーコントロールのdivにFlashオブジェクトを追加します。ユーザーコントロールの機能の一部は、ユーザーが「チャンネル」を変更できるようにすることです。チャンネルはコードの後ろに設定され、処理されます。そのため、以下のJavaScriptの呼び出しは<%= channel%>になります。ASP.NET AJAXの部分的なポストバック、動的JavaScriptの値

問題は、新しいチャンネルを保存すると、下のJavaScriptコードがまだ古いチャンネルを指していることです。私がこれを修正できる唯一の方法は、コードを介してページを更新することですが、これを行うためのより良い方法が必要であると考えています...

誰でも手伝いできますか?

<script type="text/javascript"> 
//Required to readd the widget to the div after partial postback 
var prm = Sys.WebForms.PageRequestManager.getInstance(); 
prm.add_pageLoaded(flashVideo_<%=widgetId%>); 

// SWFObject embed 
function flashVideo_<%=widgetId%>() { 
    var flashvars = { 
    initialURL: escape(document.location), 
    paramXMLPath: "/videoprotoype/single-video.aspx?channel=<%=channel%>"   
    } 
    var params = { 
     bgcolor: "#121212", 
     allowfullscreen: "true" 
    } 
    var attributes = {} 
    swfobject.embedSWF("/videoprotoype/assets/slideshowpro.swf", "video_<%=widgetId%>", "285", "215", "10.0.0", false, flashvars, params, attributes); 
} 
</script> 
<div id="video_<%=widgetId%>"> 
</div> 

答えて

1

は、私は、次のリンクを見てみます:

http://www.ajaxtutorials.com/ajax-tutorials/updating-an-updatepanel-programmatically-in-c/

http://basgun.wordpress.com/2008/02/27/realtime-dynamic-clock-using-aspnet-ajax-updatepanel/

http://encosia.com/2007/07/13/easily-refresh-an-updatepanel-using-javascript/

は、あなたのUpdatePanelを更新する__doPostBack()を利用することができます。

<script type="text/javascript"> 
    var channel = <%=channel%>; 
</script> 

利用代わりにASP.NETを使用してのあなたのJavaScriptでこの変数を:

1

ページレベル(<head>セクションのどこか)で現在選択されているチャンネルのグローバル変数を宣言する解決策になりますコード "ナゲット"(<%...%>)。

コードビハインド:ユーザーが新しいものを指すようにあなたは、チャネル変数を更新するスタートアップスクリプトを登録することができ、チャネルとUpdatePanelリロードを変更する今

ScriptManager.RegisterStartupScript(myCustomControl, myCustomControl.GetType(), 
    Guid.NewGuid().ToString(), "channel = " + channel, true); 

"mycustomControl"は、ユーザーコントロールのインスタンスです。

希望すると、これが役立ちます。

関連する問題