gridview的样式如下
任务名称 源路径 目标路径 频率 后缀名 地市名称
1 C:\ D:\ 每天 ini 呼市 编辑
一个问题是:
当某行处于编辑状态时,我想更改某个单元格的内容,然后把更改后的单元格的内容打印出来,但是始终取不到更改后的内容,总还是更改前的内容,请问是怎么回事?
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
getdata();
}
public void getdata()
{
SqlConnection cn = new SqlConnection(@"Data Source=mobile;Initial Catalog=Maintain;Persist Security Info=True;User ID=sa;Password=123456");
SqlCommand cmd = new SqlCommand("select * from BusinessConfig", cn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds, "BusinessConfig");
GridView1.DataSource = ds.Tables[0].DefaultView;
GridView1.DataBind();
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
getdata();
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString();
Response.Write(name);
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
getdata();
}
}
string name = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].FindControl(“你的编辑的时候的textbox的id”).Text.ToString();
你这样试试看,你的controls【0】你怎么就知道是你的那个文本框?
你每次Page_load的时候都去getdata()!!
自己把断点设置在Page_Load和另外几个事件处理程序里
然后操作一次,就知道这几个事件的执行先后顺序了
然后就会明白,为什么每次都是看到原始的数据
然后就可以在对应的某个事件处理程序里获得你想要的编辑后提交到服务端的值
是不是一直取到原来的值,如果是的话,很明显应该是少了个!ispostback
你正中要害呀,我今天也遇到了楼主一样的问题,嘿嘿,初学者总是容易忘掉这一点呢