Zmień tekst asp: etykieta z kodu C # za


Próbuję tego od około godziny; Po prostu nie mogę tego rozgryźć.
Mam
asp: Button
na stronie aspx, którą muszę wykonać kilka funkcji, z których jedną jest zmiana tekstu
asp: Label
. Wygląda na to, że powinno być proste, a inne posty w Internecie wskazują, że podchodzę do problemu poprawnie, ale ...
Problem jest prosty, ale mnie zabija. Próbując debugować/rozwiązywać problemy, dzielę kod do samych podstaw:
protected void Page_Load(object sender, EventArgs e)
{
allValidationMsg.Text = "Original text";
}protected void btnRegister_Click(object sender, EventArgs e)
{
allValidationMsg.Text = "Text changed";
}

Po naciśnięciu przycisku nic się nie dzieje. Jestem pewien, że jest to coś prostego, czego mi brakuje.
Aktualizacja:
<asp:Label id="allValidationMsg" runat="server" height="22px" ForeColor="Red"></asp:Label><asp:Button class="navbutton" ID="btnRegister" runat="server" 
Text="Register User" OnClick="btnRegister_Click"/>

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że po kliknięciu przycisku Page_Load jest ponownie wywoływana, a oryginalny tekst pozostaje. Spróbuj
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
allValidationMsg.Text = "Original text";
}

Zakładam również, że rejestrujesz program obsługi zdarzeń dla przycisku w Markup, ponieważ nie widzę go nigdzie w kodzie
<asp:Button id="Button1" runat="server" OnClick="btnRegister_Click"/>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Być może zapomniałeś powiązać kliknięcie przycisku z programem obsługi.
Możesz to zrobić w ten sposób w kodzie:
mybutton.Click+=btnRegister_Click;

Lub w aspx:
<asp:Button id="Button1"
Text="Click here for greeting..."
OnClick="btnRegister_Click"
runat="server"/>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wygląda na to, że problem został rozwiązany za pomocą CompareValidator. Nie bardzo wiem dlaczego, ale kiedy ten walidator zostanie wykomentowany, problem zostanie rozwiązany. Co dziwne, walidatory RequiredField i RegularExpression na tej samej stronie nie powodują żadnych problemów.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Hej, chyba wiem, co to jest. Czy Twoja etykieta w znaczniku wygląda tak?
<asp:Label ID="Label1" runat="server" >Some text</asp:Label>

Chcesz tego w swoich znacznikach:
<asp:Label ID="Lable1" runat="server" text ="some text"></asp:Label>

Przydarzyło mi się to już wcześniej. Jeśli zmienisz znaczniki na this. To powinno działać.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Widzę, że napisałeś „onclick” zamiast „OnClick” w znacznikach (wielkość liter). Być może to jest przyczyną problemu.

UPDATE1

czy możesz spróbować tego (sprawdź, czy działa ogłaszanie zwrotne):
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
allValidationMsg.Text = "Original text";
}
else
{
allValidationMsg.Text = "After postback";
}
}

Jeśli tekst zmieni się po kliknięciu przycisku?

UPDATE2

również spróbuj wprowadzić pewne zmiany w tekście, aby zobaczyć, czy nowa wersja jest faktycznie wdrażana (aby uniknąć poważnych problemów z buforowaniem).

UPDATE3

możesz spróbować wykonać powiązanie w codebehind (i usunąć go z aspx).

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się