【发布时间】:2013-02-20 19:34:47
【问题描述】:
我正在开发一个自定义控件,它在其textchange event 中呈现 (a) textbox(es)稍后在page load 获取。但我的问题是,如何异步调用在我的控件内编码的方法来执行搜索功能。目前,textbox textchange 和 buttons click events 没有触发,按钮单击加载页面并且在文本框中写入没有任何作用。这是代码。
public int Count { get; set; }
public List<object> Selection { get; set; }
public object SelectedObject { get; set; }
public Label label;
public TextBox textBox;
protected override void RenderContents(HtmlTextWriter output)
{
textBox = new TextBox();
textBox.TextChanged += new EventHandler(Method);
UpdatePanel up = new UpdatePanel();
up.ID = "UpdatePanel1";
up.ChildrenAsTriggers = true;
up.UpdateMode = UpdatePanelUpdateMode.Conditional;
up.ContentTemplateContainer.Controls.Add(a);
this.label = new Label();
this.label.Text = "Initialized Text.";
up.ContentTemplateContainer.Controls.Add(this.label);
Button button = new Button();
button.Text = "Say Hello";
button.Click += new EventHandler(HandleButtonClick);
up.ContentTemplateContainer.Controls.Add(button);
this.Controls.Add(up);
foreach (Control c in this.Controls)
{
c.RenderControl(output);
}
}
private List<object> Get(string searchValue)
{
throw new NotImplementedException();
}
public void Method(object sender, EventArgs e) {
(sender as TextBox).Text += " ";
//Selection = Get((sender as TextBox).Text);
}
private void HandleButtonClick(object sender, EventArgs e)
{
this.label.Text = "Hello " + this.textBox.Text;
//Selection = Get(this.textBox.Text);
}
【问题讨论】:
-
a.TextChanged += new EventHandler(Method);- 你从哪里得到这个a? -
我的错,我将 a 更改为 textBox 以提高可读性。已编辑,a 为 textBox。
标签: c# custom-controls asp.net-customcontrol