簡體   English   中英

如何從asp.net中的服務器端代碼向動態創建的文本框控件添加事件處理程序

[英]How to add event handlers to a dynamically created textbox control from server side code in asp.net

我有一個gridview控件,其中從服務器端代碼動態地在第5和第6列中添加了文本框,如下所示:

protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            System.Web.UI.WebControls.TextBox txtFrom = new System.Web.UI.WebControls.TextBox();
            txtFrom.ID = "txtFrom";
            txtFrom.Width = 70;
            txtFrom.AutoPostBack = true;
            txtFrom.TextChanged += new System.EventHandler(this.txtFrom_Changed);
            e.Row.Cells[5].Controls.Add(txtFrom);

            System.Web.UI.WebControls.TextBox txtTo = new System.Web.UI.WebControls.TextBox();
            txtTo.ID = "txtTo";
            txtTo.Width = 70;
            txtTo.AutoPostBack = true;
            txtTo.TextChanged += new System.EventHandler(this.txtTo_Changed);
            e.Row.Cells[6].Controls.Add(txtTo);
        }
    }

但是,當我調用Textchanged事件(如下所示的代碼)時,文本框消失了。

protected void txtTo_Changed(object sender, EventArgs e)
    {
        System.Web.UI.WebControls.TextBox textbox = (sender as System.Web.UI.WebControls.TextBox);
        MyAlert(textbox.ID + " text changed value: " + textbox.Text);
    }

請您建議為什么會這樣,我該如何解決。

謝謝大家的期待。

謝謝。 我可以通過修改以下代碼並在回發期間調用新函數來解決此問題。

protected void getDateControls()
    {
        foreach (GridViewRow grow in gdView.Rows)
        {
            System.Web.UI.WebControls.TextBox txtFrom = new System.Web.UI.WebControls.TextBox();
            txtFrom.ID = "txtFrom";
            txtFrom.Width = 70;
            txtFrom.AutoPostBack = true;
            txtFrom.TextChanged += new System.EventHandler(this.txtFrom_Changed);
            grow.Cells[5].Controls.Add(txtFrom);

            System.Web.UI.WebControls.TextBox txtTo = new System.Web.UI.WebControls.TextBox();
            txtTo.ID = "txtTo";
            txtTo.Width = 70;
            txtTo.AutoPostBack = true;
            txtTo.TextChanged += new System.EventHandler(this.txtTo_Changed);
            grow.Cells[6].Controls.Add(txtTo);
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM