У меня есть проблема со страницей под masterPage. моя маленькая мягкая генерирует случайное значение с четким кодом, а затем подсчитывает значение i от 0 до значения с клиентским скриптом. Когда я запускаю программу без masterpages, она работает, но когда я пытался запустить ее из вложенной страницы, она не работает. здесь мой код:javaScript в ASP с MasterPage
мачтовая страница имеет только ContentPlaceHolder. вложенным веб-формы:
asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
<asp:Button ID="Button1" runat="server" Text="Button" />
<asp:Label ID="Label2" runat="server" Text="0"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
острый код:
Random rnd = new Random();
int q = rnd.Next();
Label1.Text = q.ToString();
ScriptManager.RegisterClientScriptInclude(this.Page, typeof(Page), "counter", "myjs.js");
Button1.Attributes.Add("onclick", "counter(); return false;");
сценарий:.
function counter() {
var q = Number(document.getElementById("Label1").innerHTML);
var i = Number(document.getElementById("Label2").innerHTML);
if (i < q) {
i += 1;
document.getElementById("Label2").innerHTML = i;
setTimeout(function() { counter(); }, 10);
}
}
Ошибка здесь вар Q = Number (document.getElementById ("Label1") innerHTML); и текст ошибки: Ошибка выполнения Microsoft JScript: Требуется объект
во избежание дублирования идентификаторов, когда у вас есть главная страница, все элементы управления имеют свои идентификаторы (добавлен префикс). Таким образом, ваш «Label1» больше не имеет этого идентификатора - если вы посмотрите на источник HTML или используете инспектор Chrome или Firebug, вы увидите, что такое настоящий идентификатор. –
настройте asp-элементы управления, которые вы хотите настроить с помощью javascript, на 'ClientIDMode =" Static ", и элементы управления сохранят свои исходные идентификаторы при откачивании в качестве идентификаторов клиентов – adaam