Я создал пользовательский элемент управления, который имеет некоторую проверку на стороне клиента. Я встраиваю Javascript через RegisterStartupScript и передаю информацию на проверку через RegisterExpandoAttribute. Однако пользовательский элемент управления не отображается на странице Load, и когда я использую document.getElementById, я получаю нулевые значения.Проверка на стороне клиента пользовательского элемента управления, который не отображается на странице Загрузка
Вот мой текущий код:
public void Page_Load(object sender, EventArgs e)
{
ClientScriptManager cs = Page.ClientScript;
Type cstype = this.GetType();
if (!cs.IsStartupScriptRegistered(cstype, "ValidatorType"))
{
String DateValidator;
DateValidator = "<script type=\"text/javascript\">\n";
DateValidator += "function ValidateDate(source, args) {\n";
DateValidator += " var ddDay = document.getElementById(source.day);\n";
DateValidator += " var day = ddDay.selectedIndex;\n";
DateValidator += " var ddMonth = document.getElementById(source.month);\n";
DateValidator += " var month = ddMonth.selectedIndex;\n";
DateValidator += " var ddYear = document.getElementById(source.year);\n";
DateValidator += " var year = ddYear.selectedIndex;\n";
DateValidator += " if (day == 0 || month == 0 || year == 0)\n";
DateValidator += " args.IsValid = false;\n";
DateValidator += " else\n";
DateValidator += " args.IsValid = true;\n";
DateValidator += " }\n";
DateValidator += "</script>";
cs.RegisterStartupScript(cstype, "ValidatorType", DateValidator);
}
cs.RegisterExpandoAttribute(reqDueDate.ClientID, "month", ddMonth.ClientID);
cs.RegisterExpandoAttribute(reqDueDate.ClientID, "day", ddDay.ClientID, false);
cs.RegisterExpandoAttribute(reqDueDate.ClientID, "year", ddYear.ClientID, false);
}
Ошибки, которые я получаю, являются:
Uncaught TypeError: Cannot set property 'month' of null
Uncaught TypeError: Cannot read property 'selectedIndex' of null
Получить обладатель места в браузере и скрыть его с помощью JavaScript. Предположим, что ваш владелец места имеет id pnlMain, тогда вы можете скрыть его с помощью document.getElementById ('<% = pnlMail.ClientID%>'). Style.display = 'none'; – Adil