1

我已经尝试了一个小时左右;只是似乎无法弄清楚。我asp:Button在一个 aspx 页面上有一个,需要完成几个功能,其中一个是更改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" />
4

5 回答 5

3

我认为当您单击按钮时,再次调用 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" />
于 2013-01-03T22:58:15.693 回答
2

可能您忘记将按钮单击绑定到处理程序。

您可以在代码隐藏中执行类似的操作:

mybutton.Click+=btnRegister_Click;

或在 aspx 中:

<asp:Button id="Button1"
       Text="Click here for greeting..."
       OnClick="btnRegister_Click" 
       runat="server"/>
于 2013-01-03T22:58:07.137 回答
1

解决了; 问题似乎与使用了 CompareValidator 有关。不太明白为什么,但是当这个验证器被注释掉时,问题就解决了。有趣的是,同一页面上的RequiredField 和RegularExpression 验证器不会导致任何问题。

于 2013-01-04T00:13:31.380 回答
0

我可以看到您在标记(案例)中写了“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 中删除它)。

于 2013-01-03T23:11:47.410 回答
0

嘿,我想我知道它是什么。在您的标记中,您的标签看起来像这样吗?

<asp:Label ID="Label1" runat="server" >Some text</asp:Label>

你希望在你的标记中:

<asp:Label ID="Lable1" runat="server" text ="some text"></asp:Label>

我以前也有过这种情况。如果您将标记更改为该标记。它应该工作。

于 2013-01-03T23:19:13.177 回答