我正在处理一个 asp.net 页面,并且我有一个使用内容页面(我的 web 控件)的母版页。在我的 Web 控件中,我有 4 个元素。当我更改picklisttype下拉
PickListType - 下拉 UserPickList - 不重要 组织 - 标签正文 - 标签地址 - 下拉
当我更改picklisttype dropdwon 时,我想隐藏正文和地址,反之亦然。
当我第一次更改它时,它可以工作,但是第二次,它说它第二次找不到 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)从父(主)页面中找到这些元素。