asp.net     DataList 更新不了,取不出控件输入的值  if (e.CommandName == "Update")
        {
            string name = ((TextBox)e.Item.FindControl("txtNameE")).Text;             
            Bind();
            Response.Write("<script>alert('没有ID为:" + name + "这个人!');</script>");
        }txtNameE控件绑定了字段, 现在需要更新数据,不过怎么更新都是原来绑定的字段,文本框输入的值没有传进去

解决方案 »

  1.   

    没有update语句的话,你如何能得到新的更新值呢
      

  2.   

    Response.Write("<script>alert('没有ID为:" + name + "这个人!');</script>");
    这里有输入了 更新的话可以看到文本框输入的值
      

  3.   

    检查ispostback
    单步跟踪数据
      

  4.   

    跟踪了啊   比如我想更新ID和Name  这两个都绑定了数据库字段, 点编辑状态到更新选项,我在name文本框输入修改的值,点更新断点调试看到输入的值并没有传进来,还是原来绑定的那值,更新不了.
      

  5.   

    还是上代码吧      string sqlUpdate = "Update Personnel set  Name=@Name,Phone=@Phone,Address=@Address where lID=@ID";
            Personnel personnel = new Personnel();
            personnel.ID = DataList1.DataKeys[e.Item.ItemIndex].ToString();
            personnel.Name = ((TextBox)e.Item.FindControl("txtNameE")).Text;
            personnel.phone = ((TextBox)e.Item.FindControl("txtPhoneE")).Text;
            personnel.address = ((TextBox)e.Item.FindControl("txtAddressE")).Text;        PBLL p = new PBLL();
            if (p.Update(personnel, sqlUpdate))
            {
               ---- 更新成功---SQL语句没错,上面控件的值是还是原来Eval()绑定的,输入的值传不进来
            }
            Bind();
      

  6.   

    问一下你这个txtNameE控件是在<ItemTemplate>标签下的,还是在<EditItemTemplate>标签下的??
      

  7.   


    if (e.CommandName == "Update")
            {
                string name = ((TextBox)e.Item.FindControl("txtNameE")).Text;             
                Bind();
                Response.Write("<script>alert('没有ID为:" + name + "这个人!');</script>");
            }
    不知道楼主所说不能更新是什么意思,是不能取到txtNameE的值吗,把Bind();这个绑定去掉试试看
      

  8.   

    1.检查下页面有没设了缓存
    2.设断点检查Bind()这个方法下的DataList.DataSource=“”后面的值是否改变了,