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

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

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

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

Ответы [ 2 ]

2 голосов
/ 10 мая 2009

Нет серверного 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 для элемента span . Просматривая документацию для конкретной функции, обратите внимание на информацию о стандартах, поскольку она скажет вам, работает ли она в каком-либо браузере или только в Internet Explorer.

1 голос
/ 10 мая 2009

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

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

...