Следующий код не работает.Разметка находится в пользовательском элементе управления, и я полагаю, что именно поэтому ClientID возвращает неправильный префикс для идентификатора TextBox.
Разметка:
<INPUT id="txtName" runat="server" maxlength="50" style="WIDTH:100px">
<INPUT type="button" value="Find Your Doctor" id="btnFind" runat="server"
style="MARGIN-LEFT:10px;WIDTH:130px">
Code-Behind:
btnFind.Attributes.Add("onClick",string.Format("DoctorLink
('{0}',document.getElementById('{1}').value,{2});",
row["ZipCode"],
txtName.ClientID));
Результаты в браузере:
<input name="DoctorsMainArea1$ctl01$txtName" type="text"
id="DoctorsMainArea1_ctl01_txtName" maxlength="50" style="WIDTH:100px" />
<input name="DoctorsMainArea1$ctl01$btnFind" type="button"
id="DoctorsMainArea1_ctl01_btnFind" value="Find Your Doctor" style="MARGIN-
LEFT:10px;WIDTH:130px" onClick="PrepareDoctorLink('90210',
document.getElementById('DoctorsMainArea1_ctl00_txtName').value);" />
Как видите, параметр для вызова JavaScript равен DoctorsMainArea1_ctl00_txtName
, но фактический идентификатор элемента ввода равен DoctorsMainArea1_ctl01_txtName
.
Есть идеи как это исправить?JQuery?Меня не очень интересует объяснение происходящего (возможно, на этой странице есть другой элемент управления, который мешает), но более надежный способ решения проблемы.