我一直在尝试这个一个小时左右;似乎无法搞清楚。
我在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" />
答案 0 :(得分:3)
我认为当您单击Button时,会再次调用Page_Load并保留原始文本。试试这个
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
allValidationMsg.Text = "Original text";
}
除此之外,我假设您在Markup中注册了按钮的事件处理程序,因为我在代码隐藏中的任何地方都看不到它
<asp:Button id="Button1" runat="server" OnClick="btnRegister_Click" />
答案 1 :(得分:2)
可能您忘记将按钮单击绑定到处理程序。
你可以在代码隐藏中做到这样的事情:
mybutton.Click+=btnRegister_Click;
或者在aspx中:
<asp:Button id="Button1"
Text="Click here for greeting..."
OnClick="btnRegister_Click"
runat="server"/>
答案 2 :(得分:1)
解决;问题似乎与使用CompareValidator有关。不明白为什么,但当这个验证器被注释掉时,问题就解决了。有趣的是,同一页面上的RequiredField和RegularExpression验证器没有问题。
答案 3 :(得分:0)
我可以看到你在标记(case)中写了“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中删除它)。
答案 4 :(得分:0)
<asp:Label ID="Label1" runat="server" >Some text</asp:Label>
您希望在标记中使用此功能:
<asp:Label ID="Lable1" runat="server" text ="some text"></asp:Label>
之前我曾经遇到过这种情况。如果您将标记更改为该标记。它应该工作。