1

アップデート

問題の概要:

  1. 生成される 6 つの動的 UC があり、それぞれに独自のカスタム JS があり、UC のページ初期化で RegisterStartUpScript を使用して挿入されます。

  2. 最初の UC を生成する親ページの初回のみ、スクリプトがページの下部に正しく配置されます。

  3. 新しい 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);
}
4

1 に答える 1