本文跟上一篇文章有关连,请依照顺序来练习:
ListView与.FindControl()方法的简单练习#1 -- Page_Load事件中的错误
http://www.dotblogs.com.tw/mis2000lab/archive/2013/06/24/listview_findcontrol_20130624.aspx
书本上集,第十章有几个简单的练习
让读者练习 .FindControl()方法与.Controls各有哪些用途?什么时候用哪一个最简便?
(.NET 4.5起的书籍才有这个范例)
如果您想要用 ListView来练习,写法(跟GridView)很雷同。
流程如下:
1. 进入「编辑」模式以后, User开始修改数据
2. 修改完成后,按下「更新(Update)」按钮才是真正的「抓取 User修改后的值」并回写数据库。
因此.....我要抓取「User修改后的数据」应该把程序写在 ItemUpdating事件中
(初学者常犯的错误,他们写在「编辑」的事件中。例如 ...Editing事件....
事实上,按下「编辑」按钮只是画面上的样版作切换,进入「编辑样版」.....
User 还没有动手改资料呢!你如何抓取「人家修改后」的值????
................ 流程不对,给你程序代码,你都不知道要放在哪里啊)
这部分的写法,GridView / ListView两者雷同
互相比对一下,很简单
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//==抓取「编辑」模式里面,使用者修改后的字段值。
TextBox tb = (TextBox)GridView1.Rows[e.RowIndex].Cells[2].FindControl("TextBox1");
// TextBox tb = (TextBox)GridView1.Rows[e.RowIndex].FindControl("TextBox1");
//或是写成 TextBox tb = GridView1.Rows[e.RowIndex].FindControl("TextBox1") as TextBox;
Response.Write("<br /> title -- " + tb.Text);
//...... 省 略 ......................................................................................................
}
protected void ListView1_ItemUpdating(object sender, ListViewUpdateEventArgs e)
{
TextBox tb = (TextBox)ListView1.Items[e.ItemIndex].FindControl("titleTextBox");
//或是写成TextBox tb = ListView1.Items[e.ItemIndex].FindControl("titleTextBox") as TextBox;
Response.Write("<br /> title -- " + tb.Text);
//...... 省 略 ......................................................................................................
}
来上课吧!http://www.dotblogs.com.tw/mis2000lab/archive/2011/06/24/29807.aspx
现场表演,十~二十分钟能做到的事情
自己看书要看好久,很且看完以后还是迷糊的
文字上的说明,真的比不上「现场表演」的生动啊!
我花两年三个月学习的经验
你要花 三个月、在家自修 学完?可能吗?.....太累了吧?
我亲自上课、重点挑出来,
亲自演练给你看
五次上课,让你抓到一千多页的书本重点!(还有书本没讲的,现场上课才有喔~)
..........................................太划算了!
微软MVP + ASP.NET畅销书作者,亲自授课 -- http://www.dotblogs.com.tw/mis2000lab/archive/2011/06/24/29807.aspx