未能更改标签的文本-知道为什么吗

本文关键字:为什么 文本 标签 | 更新日期: 2023-09-27 18:03:52

我正试图更改由主页上的按钮激活的一段C#代码中的标签文本。看了这里、这里和这里,我明白了以这种方式设置文本值。。。

try
{
    mylabel.Text = "";
    do_foo (blah);
}
catch (myexception ex)
{
    mylabel.Text = ex.ToString();
}

应该会产生我正在查找的错误消息。但是,尽管遍历代码表明两个赋值都已执行,但标签文本保持不变。

有人知道我可以尝试什么吗,要么让它发挥作用,要么找出它为什么不起作用?

编辑根据要求提供更多详细信息(感谢各位迄今为止的帮助(。

ASP.NET页面包含以下部分。按钮定义如下:-

<div class="section3Header">
    <span class="heading1">Some Heading</span>
    <input id="Button2" class="button2" type="button" value="Do Work" onclick="do_work();" />
</div>

按钮激活一些Javascript:

  function do_work() {
     CallBackOU.callback("Do Work");
  }

并调用C#代码:

protected void CallBackOU_Callback( object sender, ComponentArt.Web.UI.CallBackEventArgs e )
{
    if      (e.Parameter == "Do Work")
    {
        this.CallBackOUHelper_Do_Work (e.Output);
    }
}

并且调用函数:

private void CallBackOUHelper_Do_Work (HtmlTextWriter writer)
{
    try
    {
        mylabel.Text = "";
        do_foo (blah);
    }
    catch (myexception ex)
    {
        mylabel.Text = ex.ToString();
    }
}

显然,这个项目中的代码比这多得多,但我不能全部包括在内,也不确定哪些部分是重要的。

EDIT 2激活代码的按钮位于ComponentArt:CallBack内。在这里研究该产品的文档使我怀疑这可能是问题所在;如果这个对象之外的屏幕部分没有张贴回来,那么标签(外部(自然不会改变。

未能更改标签的文本-知道为什么吗

我已经在我的电脑中创建了你的场景,它运行良好。但如果您正在使用AJAX,那么它将完全取决于您对Update面板的实现。

若标签不在更新面板中,而按钮在更新面板上,则按钮单击事件将不会更新标签文本,除非在其单击事件上添加处理程序。

所以请提供完整的场景。

如果在这之后它仍然忙于处理,可能它没有立即更新GUI。请尝试在更新后在表单上调用Refresh()