Member 12618369 Ответов: 1

Как сделать кнопку ссылки скрытой и показать заполнитель


Я использую кнопку link, но она не работает для того, чтобы сделать держатель места видимым и невидимым, как обычная кнопка

пожалуйста помочь

Что я уже пробовал:

<asp:LinkButton ID="link1" runat="server" Text="Forgot Password?" 

OnClick="link1_Click">  
 <br />  
   <asp:PlaceHolder ID="typeEmail" runat="server" Visible="false">  
    <asp:TextBox ID="textbox1" Visible="false" runat="server" AutoComplete="off">  




с фоновым кодом
protected void link1_Click(object sender, EventArgs e)  
{  
    typeEmail.Visible = true;  
    textbox1.Visible = true;  
}

1 Ответов

Рейтинг:
5

njammy

Причина, по которой это не работает, заключается в том, что происходит:
1. первая загрузка страницы, элементы управления не видны. Отличный.
2. На кнопку, они видимы. Потрясающий.
3.при последующих щелчках элементы управления все еще видны = true, так как viewstate, отправленный обратно на сервер при третьем щелчке, виден=true, поэтому вы не вносите никаких эффективных изменений в видимость.

Попробуйте вместо этого:

protected void link1_Click(object sender, EventArgs e)
{
    placeHolder1.Visible = !placeHolder1.Visible;
    textBox1.Visible = !textBox1.Visible;
}


ОБНОВЛЕННЫЙ:
Обратите внимание, что видимость заполнителя переопределяет видимость всех элементов управления внутри него.
Таким образом, технически вам нужно только установить видимое свойство заполнителя True или False.

Чтобы это сработало, вы должны указать видимое значение заполнителя по умолчанию.


Member 12618369

Спасибо я попробовал это сделать но это все еще не работает

njammy

Уверяю вас, это работает.
Попробуйте это на новой странице, а затем исправьте свою собственную оригинальную страницу шаг за шагом.

Member 12618369

Спасибо я попробовал его на новой пустой странице но все еще не работает

njammy

Пожалуйста, обновите свой вопрос и опубликуйте полную разметку страницы и полный код.

Member 12618369

этот код для новой пустой страницы я уже пробовал
&ЛТ;%@ страницы язык="в C#" AutoEventWireup значение=значение"true" CodeFile="по умолчанию.aspx-файл.КС" наследует="помощью _default" %&ГТ;

<!DOCTYPE html>

< html xmlns="http://www.w3.org/1999/xhtml" >
&ЛТ;глава атрибут runat="сервер"и GT;
в <название&ГТ;&ЛТ;/название&ГТ;
< / head>
& lt;тело>
&ЛТ;форме ID="форма form1" атрибут runat="сервер"и GT;
< div>
&ЛТ;как ASP:LinkButton элемент ID="link1 и" атрибут runat="сервер" CausesValidation="ложного" текста=" " Забыли пароль?"" Функция onclick="link1_Click"&ГТ;
< br / & gt;
&ЛТ;АСП:заполнитель идентификатор="typeEmail" атрибут runat="сервер" и GT;
&ЛТ;АСП:текстовое поле с ID="элемент textbox1" видны="ложных" атрибут runat="сервер" автозаполнения="off"и&ГТ;


< / div>
< / форма>
< / body>
< / html>
с фоновым кодом
использование системы;
использование системы.Коллекции.Общий;
использование System. Linq;
использование системы.Сеть;
используя системы.Веб.ИП;
используя системы.Веб.Пользовательского интерфейса.WebControls;

общественный разделяемого класса _default : на системы.Веб.Пользовательского интерфейса.Страницы
{
protected void Page_Load(отправитель объекта, EventArgs e)
{

}
охраняемых недействительными link1_Click(объект отправителя, EventArgs в электронной)
{
//typeEmail.Видимое = истинное;
//typeEmail.Видимое = истинное;
typeEmail.Видно = !typeEmail.Видно;
текстовое поле textbox1.Видно = !текстовое поле textbox1.Видно;
}
}


Я понял, что какая-то проблема с кнопкой ссылки, потому что я попробовал кнопку, она работает нормально

njammy

Хорошо, пожалуйста, укажите фактическую проблему, с которой вы столкнулись, и объясните поведение, которое вы получаете от этого кода сейчас?

Кстати, ваша разметка для заполнителя в этом коде не имеет visible= "false" attrivbute.

Member 12618369

да даже с ложными атрибутами не работает
моя фактическая проблема заключается в том, что мне нужно сделать держатель места видимым, когда я нажимаю на кнопку ссылки

njammy

Ладно, я понимаю, что пошло не так. Пожалуйста, проверьте мое обновленное решение. Видимость заполнителя переопределяет все внутренние элементы управления.

Member 12618369

извините я не вижу вашего обновленного решения где оно
спасибо

njammy

Я имею в виду в основном тексте ответа на решение выше.