日期:2014-05-16  浏览次数:20511 次

后台无法获取到更改后的TextBox的值
开始TextAlbum.Text从SqlDataReader读取到从数据库的记录

string DoSql = "select * from Album where AlbumID='" + Request.QueryString["id"] + "'";
        SqlDataReader dr = db.Logins(DoSql);
        if (dr.Read())
        {
            TextAlbum.Text = dr["AlbumName"].ToString();
            LbTime.Text = dr["AlbumDate"].ToString();
            albumdis.InnerText = dr["AlbumDis"].ToString();
            dr.Close();
        }


数据库记录为“China”,我通过按钮事件执行更改操作


string Exid = "select AlbumPath from Album where AlbumID='" + Request.QueryString["id"] + "'";
            string AlbumDir = db.ExecScalar(Exid);
            string Albumname = TextAlbum.Text.Trim();
            string Spath = Server.MapPath(@AlbumDir);
            string Dpath =@"..\images\"+TextAlbum.Text.Trim();
            string Dpath1 = Server.MapPath(@Dpath);         
            if (Directory.Exists(Spath))
            {
                Directory.Move(Spath, Dpath1);
                DirectoryInfo Dirinfo=new DirectoryInfo(Spath);
                DateTime dt = Dirinfo.CreationTime;
                string Upsql = "update Album set AlbumName='"+ TextAlbum.Text.Trim() +"',AlbumPath='"+  Dpath +"'";
                Common.ShowMsgBox("移动成功", this.Page);
            }

然后我把“China”改为“中国”并且点击按钮,通过调试看到
TextAlbum.Text的值没有改变

这里的问题出在什么地方呢?
------解决方案--------------------
先跟踪读取时,是否正确读取,并在页面中是否显示,然后在看,按钮点击前,是否触发了pageload事件,初始化了text的值
------解决方案--------------------
你Textbox 设置了autopostback=true吗?
------解决方案--------------------
感觉你是page_load绑定没有写在if(!ispostback)中吧
------解决方案--------------------

if(!page.ispostback)
{
string DoSql = "select * from Album where AlbumID='" + Request.QueryString["id"] + "'";       
}