繁体   English   中英

通过自定义服务器控件呈现的更新面板内的单击事件按钮未触发

[英]Buttons on click event, inside an update panel, rendered through a custom server control not firing

我正在开发一个自定义控件,该textchange event在其textchange event呈现一个(或多个) textbox ,我想将该值异步发送到该控件,该控件将在该控件中进行搜索并在暴露的属性中使数据可用,以便稍后在page load获取。 但是我的问题是,如何异步调用在我的控件内编码的方法来执行搜索功能。 目前, textbox textchangebuttons 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM