我有一个asp.net应用程序,它有webform1.asp.cs和一个自定义类class1。 class1在webform1.asp.cs中实例化。我正在从class1中提出自定义事件event1。此事件1在webform1.asp.cs中使用。我有一个asp.net文本框控件(多行)。在webform1.asp.cs中消费event1代码,我写了一些文本到asp.net文本框。事件被引发但文本框不显示文本。但是,当我写入Debug时,它会显示文本。发生了什么事?
// class1中的事件代码:
public delegate void StatusChange(object sender, EventHelper args);
public class EventHelper : EventArgs
{
public string message;
}
EventHelper e1 = new EventHelper();
e1.message = "some text";
OnStatusChange(this, e1);
//在webform1.asp.cs中:
protected void Page_Load(object sender, EventArgs e)
{
Class1 cs = new Class1();
cs.OnStatusChange +=cs_OnStatusChange;
}
void cs_OnStatusChange(object sender, EventHelper e)
{
TextBox1.Text += e.message;
}
答案 0 :(得分:0)
最后,我意识到当事件发生时,asp.net webcontrols不会被重新呈现,除非你回发。这意味着当事件从另一个类引发时,虽然事件处理程序正在工作,并且看起来文本框已填充在代码中,但它没有在UI上呈现。我最终创建了一个WPF浏览器应用程序。