アップデート
問題の概要:
生成される 6 つの動的 UC があり、それぞれに独自のカスタム JS があり、UC のページ初期化で RegisterStartUpScript を使用して挿入されます。
最初の UC を生成する親ページの初回のみ、スクリプトがページの下部に正しく配置されます。
新しい UC を生成するための後続の部分更新 (AJAX 呼び出し) では、関連するスクリプトは挿入されません...
引き続き検索していろいろ試してみますが、どなたか教えていただけると助かりますよろしくお願いします!
以下は完全な説明です
RadScriptManager が定義されているマスター (テレリックのスクリプト マネージャー) を使用する親ページがあります。親ページには、動的ユーザー コントロールが生成されるプレースホルダーがあります。UC には、UC の Page_Init に挿入する JavaScript があります。
最初のページ読み込みで初めて呼び出すと、スクリプトは正しく機能します.Chromeデバッガーのソースコードで確認できます。親の ddl を変更すると、それが呼び出され、プレースホルダー内に別の UC が生成されます。後者には、最初に生成されたものと同様の独自の Javascript Inject があります...両方の UC は基本的に各州のビューであるため、構造は同じですが、フォームの内容はわずかに異なります...
問題は、Chrome デバッガーを表示すると、ユーザー コントロールのコンテンツの部分的な更新が表示されますが、UC の Page_Init で add_load に追加されるはずだった 2 番目のコントロールからの新しいスクリプトが表示されないことです。そのため、毎回、コントロールを変更すると、前のスクリプトが呼び出されます...私のコードは以下のセクションを通過しますが...基本的に、ロードされている特定のコントロールに適切なスクリプトを登録しています。
以下の例では、ロードしようとしていた現在の州である「ON cmbSearch = ...」ではなく、「SK cmbSearch = ..」というアラートが常に表示されます。
誰かが私にいくつかの指針を与えることができますか?
public void RegisterSearchVisibilityPPSA()
{
string jsFunction =
@"function DefineView(sender, eventArgs) {
var comboSearch = $find('%%cmbSearchType%%');
//cmbSearch Section
alert('ON cmbSearch = %%cmbSearchType%% with value = ' + comboSearch.get_selectedItem().get_value() );
switch (comboSearch.get_selectedItem().get_value()) {
//PER
case 'IN':
case 'IS' :
$('#tblPersonSearchForm').show();
$('#tblPersonDOBSearchForm').show();
$('#tblBusinessSearchForm').hide();
$('#tblSerialNumberedSearchForm').hide();
break;
//BUS
case 'BD':
$('#tblPersonSearchForm').hide();
$('#tblPersonDOBSearchForm').hide();
$('#tblBusinessSearchForm').show();
$('#tblSerialNumberedSearchForm').hide();
break;
//SER
case 'MVE':
case 'MVS':
$('#tblPersonSearchForm').hide();
$('#tblPersonDOBSearchForm').hide();
$('#tblBusinessSearchForm').hide();
$('#tblSerialNumberedSearchForm').show();
break;
//REG
case 'REG':
default:
$('#tblPersonSearchForm').hide();
$('#tblPersonDOBSearchForm').hide();
$('#tblBusinessSearchForm').hide();
$('#tblSerialNumberedSearchForm').hide();
$('#tblRegistrationNumberedSearchForm').show();
break;
}
}
function onPageLoad(){
// jquery Area
$(document).ready(function () {
DefineView();
});
}
";
RadScriptManager.RegisterStartupScript(this, this.GetType(), "ON_SearchVisibilityPPSA",jsFunction.Replace("%%cmbSearchType%%", cmbSearchType.ClientID), cmbRegistrationType.ClientID), true);
string onLoadScript = @" Sys.Application.add_load(function(){ onPageLoad();}) ";
RadScriptManager.RegisterStartupScript(this, this.GetType(), "ON_onLoadScript", onLoadScript, true);
}