"lb"这个控件在什么地方?
"tb"这个控件在什么地方?
你上面并没有列出来
不能实现是什么
是抛处异常还是没有反应?

解决方案 »

  1.   

    lb和tb是
    在ItemTemplate里面还是在EditTemplate里面?
      

  2.   

    楼上的朋友,代码里有啊,在编辑项目摸板里,我把它单独贴出来拉<EditItemTemplate>
    <%#DataBinder.Eval(Container.DataItem,"name")%><asp:LinkButton ID="edit_btn" Text="编辑状态" CommandName="edit" runat="server" />
    <asp:LinkButton ID="cancel_btn" Text="取消编辑" CommandName="cancel" runat="server" /><br/><asp:TextBox ID="tb" runat="server" /><asp:Button ID="update_btn" CommandName="update" Text="确定编辑" runat="server" /><br/><asp:Label ID="lb" runat="server" />
    </EditItemTemplate>
    点了确定编辑后没反映,也不报错,还请你帮我看看,谢谢拉。
      

  3.   

    其实,看你的程序,好像已经更改了DataList也好,DataGrid也好
    当你没有点击【编辑】的时候,编辑列里面的控件是没有生成的
    拿你的例子而言,就是tb,lb是没有生成的点击了【编辑】按钮,指定了Grid/List的EditIndex
    页面PostBack,根据你指定第几行为编辑行,生成对应的编辑模板里面的控件
    然后发向客户端。保存之后,指定EditIndex = -1
    重新绑定数据
    又把编辑模板里面的控件给去掉了如此而已
    就是说,编辑模板里面的控件的生命周期是很短的。
      

  4.   

    楼上的朋友,那么我的这个问题怎么解决了?也就是说我要取到tb中的值,同时也想生成lb。再次感谢!
      

  5.   

    现在我把lb放到DataList外面去了,还是取不到tb的值,到底DataList的编辑功能怎么用啊?
      

  6.   

    而且我还用全局变量过度了一下,把tb的值先给变量,然后在给lb还是不行,哪位高人帮帮我啊。
      

  7.   

    你这个TB没有帮定啊?
    <asp:TextBox ID="tb" runat="server" />
    你这是一个空的tb
      

  8.   

    你TB,LB初始化不是你的数据?
    你加入IsPost判断,如果你在页面page_load时候帮定了,赋予的值会被覆盖的!
      

  9.   

    ----------------------------------------------------------------------------------- brightheroes(闭关|那一剑的风情) ( ) 信誉:103  2004-10-28 20:56:00  得分: 0  
     
     
       你这个TB没有帮定啊?
    <asp:TextBox ID="tb" runat="server" />
    你这是一个空的tb-----------------------------------------------------------------------------------非常感谢你耐心的回答,谢谢!请问如何绑定,而且我在void DL_update(Object O,DataListCommandEventArgs E)这段程序里加上了
    if(!IsPostBack)你最好把[Page_Load],[编辑],[取消编辑]和[确定]这几个程序写出来我看看好吗?我只剩下20分拉,我全加上拉!
      

  10.   

    如何绑定,你可以直接修改你的
    <asp:TextBox ID="tb" runat="server" Text = '<%# (DataBinder.Eval(Container, "DataItem.你的字段名称%>'/>这样就可以了
    其次,你要注意Page_Load里面if(!Page.IsPostBack)

       //绑定你的数据
    }
      

  11.   

    给你推荐一个例子
    http://dotnet.aspx.cc/ShowDetail.aspx?id=49ML4AO8-5PB3-4KNY-NJZD-LJOIOXV4M1X4
      

  12.   

    我晕,你的意思是说,你输入数据之后得不到值?对吧
    那么,你的Page_Load里面数据绑定的语句
    要如下:Page_Load()
    {
       if(!Page.IsPostBack)
       {
          yourDataGrid.DataSource = 获取数据;
          yourDataGrid.DataBind();
       }
    }如果没有   if(!Page.IsPostBack)这个条件
    输入的值会因为页面PostBack,重新读取数据库,从而丢失的
      

  13.   

    邮件已经发了,请收,谢拉!如果不能正常接收我给给地址你下载:http://www.optometry.cn/DataList_Edit.rar
      

  14.   

    我看了你的代码
    你是这样写的
    public static SqlConnection conn=new SqlConnection("server=.;uid=sa;pwd=;DataBase=data");
    void Page_Load(Object O,EventArgs E)
    {  
      if(!Page.IsPostBack)
       {
      conn.Open();
      SqlCommand cmd=new SqlCommand("select id,name,price,address,quan,imageid,imagename from product where id<>1000",conn);
      SqlDataReader sdr=cmd.ExecuteReader();
      pro.DataSource=sdr;
      pro.DataBind();
      conn.Close();
      }
    }void pro_Edit(Object O,DataListCommandEventArgs E)
    {
      pro.EditItemIndex=E.Item.ItemIndex;
      Page_Load(O,E);
    }void pro_Cancel(Object O,DataListCommandEventArgs E)
    {
      pro.EditItemIndex=-1;
      Page_Load(O,E);
    }void pro_Update(Object O,DataListCommandEventArgs E)
    {  
       ((Label)E.Item.FindControl("edit_lb")).Text=((TextBox)E.Item.FindControl("tb")).Text;
       lb.Text=((TextBox)E.Item.FindControl("tb")).Text;
       pro.EditItemIndex=-1;
       Page_Load(O,E);
       
    }
      

  15.   

    你是在里面重新调用的 Page_Load(O,E),这是不对的,因为你要重新绑定数据而已。
    不需要执行Page_Load,Page_Load里面是有条件的。
    建议修改如下:private void BindGrid()
    {
       conn.Open();
      SqlCommand cmd=new SqlCommand("select id,name,price,address,quan,imageid,imagename from product where id<>1000",conn);
      SqlDataReader sdr=cmd.ExecuteReader();
      pro.DataSource=sdr;
      pro.DataBind();
      conn.Close();}void Page_Load(Object O,EventArgs E)
    {  
      if(!Page.IsPostBack)
       {
          BindGrid();
      }
    }
    void pro_Edit(Object O,DataListCommandEventArgs E)
    {
      pro.EditItemIndex=E.Item.ItemIndex;
    BindGrid();
    }void pro_Cancel(Object O,DataListCommandEventArgs E)
    {
      pro.EditItemIndex=-1;
    BindGrid();
    }void pro_Update(Object O,DataListCommandEventArgs E)
    {  
       ((Label)E.Item.FindControl("edit_lb")).Text=((TextBox)E.Item.FindControl("tb")).Text;
       lb.Text=((TextBox)E.Item.FindControl("tb")).Text;
       pro.EditItemIndex=-1;
    BindGrid();
       
    }