![](/img/trans.png)
[英]c# asp Textbox Text does only change from Code behind when Textbox is readonly
[英]Change asp:Label text from C# code behind
我已經嘗試了一個小時左右; 只是似乎無法弄清楚。 我在aspx頁面上有一個asp:Button
,它需要完成幾個功能,其中之一是更改asp:Label
的文本。 這似乎應該很簡單,其他在線帖子表明我正在正確解決問題,但是...
問題很簡單,但是卻使我喪命。 為了進行調試/故障排除,我將代碼剝離了非常基本的內容:
protected void Page_Load(object sender, EventArgs e)
{
allValidationMsg.Text = "Original text";
}
protected void btnRegister_Click(object sender, EventArgs e)
{
allValidationMsg.Text = "Text changed";
}
單擊該按鈕時,沒有任何反應。 我敢肯定,這很簡單,我很想念。
更新:
<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" />
我認為當您單擊按鈕時,將再次調用Page_Load,並且保留原始文本。 嘗試這個
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
allValidationMsg.Text = "Original text";
}
除此之外,我假設您在標記中注冊了按鈕的事件處理程序,因為我無法在代碼的任何地方看到它
<asp:Button id="Button1" runat="server" OnClick="btnRegister_Click" />
可能您忘記了將按鈕單擊綁定到處理程序。
您可以在后台代碼中執行以下操作:
mybutton.Click+=btnRegister_Click;
或在aspx中:
<asp:Button id="Button1"
Text="Click here for greeting..."
OnClick="btnRegister_Click"
runat="server"/>
解決了; 該問題似乎與使用CompareValidator有關。 真的不明白為什么,但是當這個驗證器被注釋掉時,問題就解決了。 有趣的是,同一頁面上的RequiredField和RegularExpression驗證程序不會引起任何問題。
我可以看到您在標記中寫了“ onclick”而不是“ OnClick”(大小寫)。 可能是問題的原因。
UPDATE1您可以嘗試這樣做(檢查回發是否有效):
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
allValidationMsg.Text = "Original text";
}
else
{
allValidationMsg.Text = "After postback";
}
}
按下按鈕后文字是否改變?
UPDATE2另外,請嘗試對文本進行一些更改,以了解是否確實部署了新版本(以排除強大的緩存問題)。
UPDATE3您可以嘗試在代碼隱藏中進行綁定(並將其從aspx中刪除)。
嘿,我想我知道這是什么。 在您的標記中,您的標簽看起來像這樣嗎?
<asp:Label ID="Label1" runat="server" >Some text</asp:Label>
您需要在標記中添加以下內容:
<asp:Label ID="Lable1" runat="server" text ="some text"></asp:Label>
我曾經發生過這種情況。 如果將標記更改為該標記。 它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.