私は 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) に入って、親 (マスター) ページからこれらの要素を見つけています。