1

私は asp.net ページで作業しており、コンテンツ ページ (私の Web コントロール) を使用するマスター ページがあります。私の Web コントロールには、4 つの要素があります。picklisttype ドロップダウンを変更すると

PickListType - ドロップダウン UserPickList - 重要ではない Organization - ラベル Body - ラベル Address - ドロップダウン

picklisttype dropdwon を変更すると、Body と Address を非表示にする必要があり、その逆も同様です。

初めて変更すると機能しますが、2回目はBodyとAddressのIDが見つからないと表示されます(可視性を非表示に設定しました)。ソースを調べると、これらの要素は 1) ポストバック中に ID が変更され、.ClientId がそれらを見つけられないか、2) それらが消えてしまったようです。

これを行う方法がわかりません。何か案は?

function DropDownChange() {

            var picklist = document.getElementById("PickListTypeList");
            var usercontainer = document.getElementById("ctl00_ctl00_ctl00_PageContentPlaceHolder_PageContentPlaceHolder_paneDetails_ApplicerPickListContainer");
            var orgcontainer = document.getElementById("ctl00_ctl00_ctl00_PageContentPlaceHolder__C_OrganizationPickListContainer");
            var addresslabel = document.getElementById("LegalBodyAddressLabel");
            var addressbox = document.getElementById("ctl00_ctl00_ctl00_PageContentPlaceHolder_PageContentPlaceHolder_paneDetails_ApplicantsRadDock_C_ApplicantsControl_AddEditApplicantDock_C_AddApplicantDock_C_LegalBodyAddressComboBox");


            if(picklist.value.toLowerCase() === "sometext"){
                usercontainer.style.display = "none";
                orgcontainer.style.display = "inline";
                addresslabel.visibility = "visible";
                addressbox.style.display = "inline";
            }
            else{
                usercontainer.style.display = "inline";
                orgcontainer.style.display = "none";
                addresslabel.visibility = "hidden";
                addressbox.style.visiblity = "none";

            }


            }

これがソースです:私は.ClientIdを使用してIDを動的に見つけましたが、それを静的(毎回同じID)に変更しましたが、まだアドレスとラベルを取得できないようです。コントロール (controlname.nameofelementID.ClientID) に入って、親 (マスター) ページからこれらの要素を見つけています。

4

2 に答える 2