问题描述
publicvoidBind(){DataTabledata=(DataTable)ViewState["data"];for(inti=0;i<GridView1.Rows.Count;i++){stringID=((Label)GridView1.Rows[i].FindControl("lbl_ID")).Text;stringName=((TextBox)GridView1.Rows[i].FindControl("txt_Name")).Text;stringClass=((TextBox)GridView1.Rows[i].FindControl("txt_Class")).Text;stringProfession=((TextBox)GridView1.Rows[i].FindControl("txt_Profession")).Text;stringState=((TextBox)GridView1.Rows[i].FindControl("txt_State")).Text;DataRow[]drs=data.Select("ID='"+ID+"'");//drs[0]["WorkPointCode"]=WorkPointCode;foreach(DataRowdrindrs){dr["Name"]=Name;dr["Class"]=Class;dr["Profession"]=Profession;dr["State"]=State;}data.AcceptChanges();}ViewState["data"]=data;//绑定数据源到GridViewGridView1.DataSource=ViewState["data"]asDataTable;GridView1.DataKeyNames=newstring[]{"ID"};GridView1.DataBind();}红色的那两句都是一样的,分别表示什么意思呢?粉红色的程序表示选择的一行数据吗?还有这段程序的作用是什么?
解决方案
解决方案二:
红色的表示存取数据到ViewState中,粉色的表示赋值给ID等于ID列数据行,如果数据表里只有一条,表示赋值给一行,多行表示赋值给多行。
解决方案三:
红色的两句第一句为什么是存取数据到ViewState中,始终不能理解我的理解是把ViewState中数据赋给data,
解决方案四:
两句红的,我的理解是:第一句把ViewState中字段名为data的数据赋给数据表对象data;第二句就是把变化后的data重新赋值回去;