[英]Buttons on click event, inside an update panel, rendered through a custom server control not firing
我正在开发一个自定义控件,该textchange event
在其textchange event
呈现一个(或多个) textbox
,我想将该值异步发送到该控件,该控件将在该控件中进行搜索并在暴露的属性中使数据可用,以便稍后在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);
}
发现您必须从IPostBackDataHandler继承您的控件,并且那里存在异步问题。 我使用了一种解决方法,将控件放入了updatepanel(将updatepanel放在aspx上),通过绑定了onclick控件的按钮注册了一个按钮,在jquery / javascript上,我触发了按钮的click事件以异步发送调用。 一切正常,但是在触发该事件后,javascript代码不再运行,尝试通过在prerender中再次注册客户端脚本来调用该函数,但没有成功。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.