0

textbox(a) (es)をレンダリングするカスタムコントロールを開発していtextchange eventます。その値を非同期でコントロールに送信し、公開されたプロパティでデータを検索して後でフェッチできるようにします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);
    }
4

1 に答える 1

0

IPostBackDataHandlerから制御を継承する必要があることがわかりました。また、非同期の問題があります。私は回避策を使用し、コントロールをupdatepanelに配置し(updatepanelをaspxに配置)、コントロールonclickを介してボタンを登録し、jquery / javascriptで、ボタンのクリックイベントを起動して呼び出しを非同期に送信しています。正常に動作しますが、そのイベントを発生させた後、javascriptコードが再度実行されないため、クライアントスクリプトをprerenderに再度登録して関数を呼び出そうとしても、動作しませんでした。

于 2013-03-09T20:06:38.620 に答える