Я использую Google appengine java sdk и столкнулся с подобной проблемой. Мне пришлось добавить
<runtime>java8</runtime>
в файл appengine-web.xml, чтобы он работал.
Если необходимо управлять им на стороне клиента, Вы не можете использовать Свойство видимости на стороне сервера. Вместо этого установите его стиль отображения 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, не серверный идентификатор, если они будут отличаться.
Попробуйте это.
<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 используется, потому что это может отличаться от идентификатора сервера, если кнопка в управлении Именованным контейнером. Они включают Панели различных видов.
Если Вы ожидаете, пока страница не загружается, и затем установила дисплей кнопки ни на один, который должен работать. Тогда можно сделать его видимым позже.
Необходимо опасаться XSS при выполнении материала как это:
document.getElementById('<%= Label1.ClientID %>').style.display
возможности состоят в том, что никто не будет в состоянии вмешаться в ClientID Label1 в этом экземпляре, но только быть на безопасной стороне, Вы могли бы хотеть передачу, это - значение через один из библиотека AntiXss методы:
document.getElementById('<%= AntiXss.JavaScriptEncode(Label1.ClientID) %>').style.display
Продолжать, что сказал Dave Ward :
дизайн
<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, или устанавливающий глобальные переменные или через параметр функции как в моем примере.
Удостоверьтесь, что Свойство видимости имеет значение true, или управление не представит к странице. Тогда можно использовать сценарий для управления им.