如何获取自定义控件中的数据
我在代码中动态创建了一个 Table,并且增加了一行,输出到表单后,点击一个Button回到后台时,这个Table的行就找不到了,也获取不到值,请问该如何处理???
------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace ControlGridView
{
[ToolboxData("<{0}:GridTable runat=server></{0}:GridTable>")]
public class GridTable : WebControl
{
public Table TBGrid
{
get
{
if (ViewState["Table"] == null)
{
ViewState["Table"] = new Table();
}
return ViewState["Table"] as Table;
}
set
{
ViewState["Table"] = value;
}
}
public Button btn = new Button();
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
btn = new Button() { Text = "Click Me" };
btn.Click += new EventHandler(btn_Click);
this.Controls.Add(btn);
}
/// <summary>
/// 按钮Click事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void btn_Click(object sender, EventArgs e)
{
// 此时获取TBGrid的Rows.Count为0
// 如何获取TBGrid在表单控件中输入的值??????
}
protected override void Render(HtmlTextWriter writer)
{
TableRow row; TableCell cell;
row = new TableRow();
cell = new TableCell();
cell.Controls.Add(new TextBox() { ID = "txtUser" });
row.Cells.Add(cell);
TBGrid.Rows.Add(row);
this.Controls.Add(TBGrid);
base.Render(writer);
}
}
}