首页 新闻 会员 周边

关于gridview的问题

0
悬赏园豆:60 [已关闭问题] 关闭于 2010-12-17 10:29

为什么我在行的编辑状态下,想取更改过的某个单元格的内容总是取不到,而是取到变化前的内容呢?

public partial class ConfigWeb : 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=56ssddf"));
        SqlCommand cmd = new SqlCommand("select * from BusinessConfig", cn);
        //SqlDataReader dr = cmd.ExecuteReader();
        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;
        GridView1.DataBind();
    }
    protected void GridView1_PageIndexChanged(object sender, EventArgs e)
    {
        //GridView1.PageIndex=
    }
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridView1.DataBind();
    }
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;
        GridView1.DataBind();
    }
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex]["ID"]);//将正在编辑的这一行与对应的数据库中的那一行的ID取出
        string TaskName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString();
        string SourcePath = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text.ToString();
        string DestPath = ((TextBox)GridView1.Rows[e.RowIndex].Cells[2].Controls[0]).Text.ToString();
        string Frequency=((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString();
        string Suffix = ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString();
        string CityName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString();
       
        Response.Write(CityName);
        string updatesql = "UPDATE BusinessConfig SET TaskName ='" + TaskName + "',SourceFilePath='" + SourcePath + "',DestFilePath ='" + DestPath + "',Frquency ='" + Frequency + "',Suffix ='" + Suffix + "' ,ProvinceName ='" + CityName + "'  WHERE ID=" + id.ToString();
        //string selectsql="select TaskName,SourceFilePath,DestFilePath,Frquency,Suffix,ProvinceName from BusinessConfig ";
        SqlConnection cn = new SqlConnection(@"Data Source=mobile;Initial Catalog=Maintain;Persist Security Info=True;User ID=sa;Password=56ssddf");
        cn.Open();
        SqlCommand cmd = new SqlCommand(updatesql, cn);
        cmd.ExecuteNonQuery();       
        GridView1.EditIndex = -1;
        getdata();
    }
}

问题补充: 调试过了,就是取 不出来修改后的内容,难道没人知道这是怎么回事么
电脑者的主页 电脑者 | 初学一级 | 园豆:2
提问于:2010-12-16 15:44
< >
分享
所有回答(5)
0

调试一下就知道了啊。。。。。。。。。。

lzhdim | 园豆:642 (小虾三级) | 2010-12-16 16:18
0

        if (!IsPostBack)

    getdate();

失忆的烟 | 园豆:8 (初学一级) | 2010-12-16 16:47
这样不行,试过了
支持(0) 反对(0) 电脑者 | 园豆:2 (初学一级) | 2010-12-16 17:14
0

有可能是事件的执行顺序导致的

爱研究源码的javaer | 园豆:930 (小虾三级) | 2010-12-16 21:38
0

Debug一下,看看是哪一步没有取到值。

无 影 | 园豆:59 (初学一级) | 2010-12-16 22:40
t调试过了,就是string TaskName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0]).Text.ToString(); 这些行没有取到值,但是看视频教程里和这个写法一样怎么就取到了呢?奇怪
支持(0) 反对(0) 电脑者 | 园豆:2 (初学一级) | 2010-12-17 08:50
你这样试试:string TaskName = ((TextBox)GridView1.Rows[e.RowIndex].Cells[0].FindContral("txtUserName").Text.ToString();
支持(0) 反对(0) 无 影 | 园豆:59 (初学一级) | 2010-12-30 19:02
0

(TextBox)GridView1.Rows[e.RowIndex].Cells[0].Controls[0])这个对象你有没有?

调试看看。

茂茂 | 园豆:2892 (老鸟四级) | 2010-12-17 09:36
调试过了,这行取不出来修改后的内容
支持(0) 反对(0) 电脑者 | 园豆:2 (初学一级) | 2010-12-17 09:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册