GRIDVIEW后台绑定数据源: string sql = "select * from DieReason_tb"; DataTable dt= Com2000888.Common.DbHelperSQL.GetDataTable(sql); //GridView1.DataSource = dt; //GridView1.DataBound(); DataView dv = dt.DefaultView; UI.BindCtrl(dv.Count, dv, this.GridView1, this.AspNetPager2); 1.GRIDVIEW实现删除功能,需要在GRIDVIEW中加一删除列,并且要在方法 GridView1_RowDeleting中自已写代码实现删除功能! 2.GRIDVIEW实现编辑功能:首先需要在GRIDVIEW中加一选择列,并在GRIDVIEW的编辑模式中加上两个LINKBUTTON,分别是更新和取消,加入此方法: protected void GridView1_SelectedIndexChanging(object sender, GridViewSelectEventArgs e) { GridView1.EditIndex = e.NewSelectedIndex; BindDeathReason(); } 还要分别写更新方法,取消方法: protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { string id = GridView1.DataKeys[e.RowIndex][0].ToString(); DieReasonEntity dr = DieReasonEntityAction.RetrieveADieReasonEntity(int.Parse(id)); TextBox txtDeathReason = GridView1.Rows[e.RowIndex].FindControl("txtDeathReason") as TextBox; dr.REASON = txtDeathReason.Text.ToString(); dr.Save(); GridView1.EditIndex = -1; BindDeathReason(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; BindDeathReason(); } 3.更新字段的值老是不成功:后来才发现是因为: protected void Page_Load(object sender, EventArgs e) { BindDeathReason(); },每次刷新后,都执行绑定,新的内容被替换为原来的内容。解决办法是加上: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindDeathReason(); } } 这样就只会在第一次加载页时才绑定GRIDVIEW. 4.找控件失败:要寻找GRIDVIEW的编辑模式下的一个文本框,不用直接用GRIDVIEW.FINDCONTROL,这样找不到,如果用以下方式就可以找到: TextBox txtDeathReason = GridView1.Rows[e.RowIndex].FindControl("txtDeathReason") as TextBox; 明确到哪一行找控件!
|