У меня есть asp:FormView
на элементе управления (в файле ascx), который загружается на страницу портала вместе с некоторыми другими элементами управления.
Мне нужно добавить проверку в форму, но когда я добавляю какой-либо из элементов управления проверкой, я получаю явно случайную ошибку в сгенерированном JavaScript при загрузке страницы, и проверка не запускается, когда мне это нужно.
Вот код, который у меня есть:
<asp:TextBox ID="FPITextBox4" runat="server" Text='<%# Bind("SomeNumber") %>'></asp:TextBox>
<asp:RangeValidator ID="RangeValidator4" runat="server" ControlToValidate="FPITextBox4" Text="*"
ErrorMessage="The number must be a whole number between 0 and 100,000" Type="Integer"
MaximumValue="100000" MinimumValue="0" ToolTip="Must be between 0 and 100,000"></asp:RangeValidator>
Это ошибка, которую я получаю при загрузке страницы:
Message: Expected ';'
Line: 1159
Char: 60
Code: 0
Когда я смотрю на строку 1159 в сгенерированном коде, она выглядит так:
var ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4 = document.all ?
document.all["ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4"] :
document.getElementById("ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d-
47aa-a089-fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4");
Код сразу над этим:
<script type="text/javascript">
//<![CDATA[
var Page_Validators = new Array(document.getElementById(
"ctl00_ctl00_main_col2_control_0_widgetcontrolX_3eba4918-7c7d
-47aa-a089-fd0ead0609fe_widgetcontrol_3eba4918-7c7d-47aa-a089-
fd0ead0609fe_FormView1_RangeValidator4"));
//]]>
</script>
Тот же код работает, когда элемент управления только что создан на тестовой странице сам по себе.
Похоже, что ошибка происходит только в IE 8. Я протестировал ту же страницу в Firefox 3.6, и все работает как положено.
Исправление
Похоже, что проверка работает. У меня был ValidationSummary
элемент управления, чтобы показать окно сообщения, и оно не появлялось, что заставило меня поверить, что проверка не была запущена. Когда я изменил это на ShowSummary="true" ShowMessageBox="false"
, сообщение об ошибке действительно появилось, и данные не сохранены.
Таким образом, все, что теперь означает, - это то, что у меня произошла случайная ошибка сценария, которая (на данный момент), похоже, не влияет на работу страницы.
Однако я все еще хотел бы удалить ошибку - на случай, если она что-то скрывает.