自定义组件是GridView中使用了TextBox组件,但在刷新前把数据保存时无法获取到TextBox中的值.是否自定义组件无法实现此功能,如果可以又如何实现,谢谢大侠们!在gvList_RowDataBound中添加TextBox
TextBox txtPageSize = new TextBox();
txtPageSize.Text = this.gvList.DataKeys[e.Row.RowIndex]["PageSize"].ToString();
txtPageSize.Width = 40;
txtPageSize.ID = "txtPageSize";
e.Row.Cells[5].Controls.Add(txtPageSize);
在保存相关数据方法是
TextBox txtPageSize = row.FindControl("txtPageSize") as TextBox;
if (txtPageSize != null)
{
if (txtPageSize.Text != "")
{
dr["PageSize"] = (txtPageSize.Text == "" ? null : txtPageSize.Text);
}
}
txtPageSize为空,找不到此组件
TextBox txtPageSize = new TextBox();
txtPageSize.Text = this.gvList.DataKeys[e.Row.RowIndex]["PageSize"].ToString();
txtPageSize.Width = 40;
txtPageSize.ID = "txtPageSize";
e.Row.Cells[5].Controls.Add(txtPageSize);
在保存相关数据方法是
TextBox txtPageSize = row.FindControl("txtPageSize") as TextBox;
if (txtPageSize != null)
{
if (txtPageSize.Text != "")
{
dr["PageSize"] = (txtPageSize.Text == "" ? null : txtPageSize.Text);
}
}
txtPageSize为空,找不到此组件
[TextBox]GridView1.Controls[0].FindControl("textbox");
foreach (GridViewRow row in this.gvList.Rows)
{
//页数
TextBox txtPageSize = row.Cells[5].FindControl("txtPageSize") as TextBox;
if (txtPageSize != null)
{
if (txtPageSize.Text != "")
{
dr["PageSize"] = (txtPageSize.Text == "" ? null : txtPageSize.Text);
}
}
http://blog.csdn.net/ojlovecd/article/details/2691116
页面回发的时候,控件的状态将会回复初始值。
由于GridView没有执行DataBind,所以RowDataBound事件没有触发,所以在回发的时候不管在哪个事件里你都不可能获取得到TextBox的
或许你只是来要代码的,我上面所说的话,你可以直接无视。
gvList_RowDataBound中在GRIDVIEW中的每一行中的一列绑定了TEXTBOX;
通过Button服务器控件的 Click 事件中保存GridView中每一行的TEXTBOX中有值保存到全局变量中去后刷新页面,而在CLICK事件中无法获取到TEXTBOX中的值;