Атрибуты серверного Javascript (aspx.cs). Добавьте код для изменения текста метки.

StackOverflow https://stackoverflow.com/questions/844275

Вопрос

Я пытаюсь изменить текст метки, используя серверный JavaScript (onclick) и C# в событии page_load.Например, я хотел бы написать что-то вроде следующего:

Label1.Attributes.Add("onclick", "Label2.text='new caption'")

Кто-нибудь знает правильный код для этого?Кроме того, что означает этот тип кода;это просто JavaScript или JavaScript на C# или есть конкретное имя?Наконец, существует ли книга или онлайн-ресурс, в котором перечислены варианты кода control.attributes.add("event", "syntax") для использования с C#?

Это было полезно?

Решение

Серверный Javascript отсутствует (если только вы не перейдете на платформу, отличную от ASP.NET, где вы фактически используете Javascript в качестве серверного языка).Вы добавляете атрибут в тег html, и код будет полностью выполняться на стороне клиента.

Во-первых, давайте посмотрим, как это делается в HTML без серверного кода и серверных элементов управления:

<span onclick="document.getElementById('Label2').innerHTML='Thank you';">Click me</span>
<span id="Label2"></span>

Использовать Label Вместо этого, установив атрибут onclick из кода на стороне сервера, вы должны сделать следующее:

Label1.Attributes.Add("onclick", "document.getElementById('Label2').innerHTML='Thank you';");

Это будет работать до тех пор, пока элементы управления не находятся внутри контейнера именования.Если да, то к идентификатору элементов управления добавляется имя контейнера, чтобы сохранить их уникальность, поэтому вам необходимо использовать ClientID свойство, чтобы узнать их окончательный идентификатор:

Label1.Attributes.Add("onclick", "document.getElementById('" + Label2.ClientID + "').innerHTML='Thank you';");

В ClientID всегда содержит идентификатор, который вы можете использовать для доступа к элементу из Javascript, поэтому последний код всегда работает независимо от того, находится ли элемент управления в контейнере именования или нет.

Чтобы узнать, какие атрибуты вы можете использовать, вам следует просмотреть документацию HTML, например документацию Internet Explorer для элемент диапазона.Просматривая документацию по конкретной функции, обратите внимание на информацию о стандартах, поскольку она скажет вам, работает ли она в любом браузере или только в Internet Explorer.

Другие советы

Приведенный выше код добавляет JavaScript к серверному элементу управления, отображаемому на клиенте.Взгляните на эту статью MSDN - Использование JavaScript вместе с ASP.NET Чтобы получить больше информации.

IIRC, вам понадобится ссылка Label2 по его ClientID, и вам нужно будет написать некоторый JavaScript, чтобы изменить текстовое значение метки (я думаю, что метки ASP.NET отображаются как <span> теги).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top