![](/img/trans.png)
[英]How to get values from dynamically created textbox's in another click event in 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.