拖了一个GridView到页面,当没有数据时在EmptyDataTemplate中显示添加的detailsview,但EmptyDataTemplate中不像FooterTemplate可以直接
TextBox txtbox=(TextBox) GridView1.FooterRow.FindControl("txtbox") ;
来获取detalisview中的控件。
研究了一翻,得到解决方法,这里贴出来给有需要的朋友。
在前台定义detailsview的OnItemInserted=DetailsView1_iteminserted OnItemInserting=DetaisView1_iteminserting 事件,并设置DefaultMode="Insert"
TextBox txtbox=(TextBox) GridView1.FooterRow.FindControl("txtbox") ;
来获取detalisview中的控件。
研究了一翻,得到解决方法,这里贴出来给有需要的朋友。
在前台定义detailsview的OnItemInserted=DetailsView1_iteminserted OnItemInserting=DetaisView1_iteminserting 事件,并设置DefaultMode="Insert"
具体代码如下
:protected void DetaisView1_iteminserting(object sender, DetailsViewInsertEventArgs e)
{
Table GridViewTable = ((Table)gvartSpec.Controls[0]);
DetailsView DetailsView1 = ((DetailsView)GridViewTable.Rows[0].FindControl("DetailsView1"));
TextBox codeStyletxtbox = (TextBox)DetailsView1.FindControl("codeStyleinserttxtbox");
{
Table GridViewTable = ((Table)gvartSpec.Controls[0]);
DetailsView DetailsView1 = ((DetailsView)GridViewTable.Rows[0].FindControl("DetailsView1"));
TextBox codeStyletxtbox = (TextBox)DetailsView1.FindControl("codeStyleinserttxtbox");
}
插入之后,再在DetailsView1_iteminserted事件中重新绑定数据
protected void DetailsView1_iteminserted(object sender, DetailsViewInsertedEventArgs e)
{
BindGrid();
}
{
BindGrid();
}