Изменить видимость ярлыка ASP.NET с помощью JavaScript

Я использую Google appengine java sdk и столкнулся с подобной проблемой. Мне пришлось добавить

<runtime>java8</runtime>

в файл appengine-web.xml, чтобы он работал.

28
задан Abbas 31 January 2012 в 16:04
поделиться

6 ответов

Если необходимо управлять им на стороне клиента, Вы не можете использовать Свойство видимости на стороне сервера. Вместо этого установите его стиль отображения CSS ни на "один". Например:

<asp:Label runat="server" id="Label1" style="display: none;" />

Затем Вы могли сделать его видимым на стороне клиента с:

document.getElementById('Label1').style.display = 'inherit';

Вы могли сделать скрытым снова с:

document.getElementById('Label1').style.display = 'none';

Имеют в виду, что могут быть проблемы с ClientID, являющимся более сложным, чем "Label1" на практике. Необходимо будет использовать ClientID с getElementById, не серверный идентификатор, если они будут отличаться.

42
ответ дан Dave Ward 31 January 2012 в 16:04
поделиться
  • 1
    Это означало бы, что сервер не добавляет необходимое содержание/данные в it' s орган по ответу отказа. Я предлагаю, чтобы Вы попросили, чтобы разработчик серверной стороны дал Вам желаемые данные в его органе по ответу – unspokenblabber 1 October 2013 в 22:00

Попробуйте это.

<asp:Button id="myButton" runat="server" style="display:none" Text="Click Me" />

<script type="text/javascript">
    function ShowButton() {
        var buttonID = '<%= myButton.ClientID %>';
        var button = document.getElementById(buttonID);
        if(button) { button.style.display = 'inherit'; }
    }
</script>

не используют серверный код, чтобы сделать это, потому что это потребовало бы обратной передачи. Вместо того, чтобы использовать Видимость = "ложь", можно просто установить свойство CSS, которое скрывает кнопку. Затем в JavaScript, переключатель, что свойство назад каждый раз, когда Вы хотите показать кнопку снова.

ClientID используется, потому что это может отличаться от идентификатора сервера, если кнопка в управлении Именованным контейнером. Они включают Панели различных видов.

10
ответ дан EndangeredMassa 31 January 2012 в 16:04
поделиться
  • 1
    сервер возвращает корректный орган по ответу. Я вижу его в AFNetworkingTaskDidFinishNotification (для отладки причин). – Oleksandr 2 October 2013 в 07:59

Если Вы ожидаете, пока страница не загружается, и затем установила дисплей кнопки ни на один, который должен работать. Тогда можно сделать его видимым позже.

0
ответ дан Brian Childress 31 January 2012 в 16:04
поделиться
  • 1
    Это дает Вам (meta) информацию о таблицах, не содержание таблицы, как предназначенный OP. – physicalattraction 13 April 2015 в 10:27

Необходимо опасаться XSS при выполнении материала как это:

document.getElementById('<%= Label1.ClientID %>').style.display

возможности состоят в том, что никто не будет в состоянии вмешаться в ClientID Label1 в этом экземпляре, но только быть на безопасной стороне, Вы могли бы хотеть передачу, это - значение через один из библиотека AntiXss методы:

document.getElementById('<%= AntiXss.JavaScriptEncode(Label1.ClientID) %>').style.display
3
ответ дан Ian Oxley 31 January 2012 в 16:04
поделиться
  • 1
    Это дает Вам (meta) информацию о таблицах, не содержание таблицы, как предназначенный OP. – physicalattraction 13 April 2015 в 10:25

Продолжать, что сказал Dave Ward :

  • Вы не можете установить свойство Visible ко лжи, потому что управление не будет представлено.
  • необходимо использовать свойство Style для установки, это дисплей к ни один .
<час>

дизайн

<asp:Label runat="server" ID="Label1" Style="display: none;" />

<asp:Button runat="server" ID="Button1" />
Страницы/Управления <час>

Код позади

Где-нибудь в разделе загрузки:

Label label1 = (Label)FindControl("Label1");
((Label)FindControl("Button1")).OnClientClick = "ToggleVisibility('" + label1.ClientID + "')";
<час>

файл

function ToggleVisibility(elementID)
{
    var element = document.getElementByID(elementID);

    if (element.style.display = 'none')
    {
        element.style.display = 'inherit';
    }
    else
    {
        element.style.display = 'none';
    }
}
JavaScript <час>

, Конечно, если Вы не хотите переключаться, но только показывать кнопку/маркировку тогда, корректирует метод JavaScript соответственно.

важный момент здесь - то, что необходимо отправить информацию о ClientID из управления, которым Вы хотите управлять на стороне клиента в файл JavaScript, или устанавливающий глобальные переменные или через параметр функции как в моем примере.

4
ответ дан mbillard 31 January 2012 в 16:04
поделиться
  • 1
    unspokenblabber отправьте свой код. потому что мой снимок экрана совпадает с @Olx – Saad Masood 13 December 2013 в 13:33

Удостоверьтесь, что Свойство видимости имеет значение true, или управление не представит к странице. Тогда можно использовать сценарий для управления им.

0
ответ дан Alex 31 January 2012 в 16:04
поделиться
  • 1
    Это дает Вам (meta) информацию о таблицах, не содержание таблицы, как предназначенный OP. – physicalattraction 13 April 2015 в 10:26
Другие вопросы по тегам:

Похожие вопросы: