我在使用DataList做编辑功能的时候出现了个怪问题,
下面是编辑模板的内容。
<EditItemTemplate>
    <tr>
    <td><%#Eval("Role_ID") %></td><td>
        <asp:TextBox ID="txtRoleName" runat="server" Text='<%#Eval("Role_Name") %>' ></asp:TextBox></td><td>
            <asp:LinkButton ID="LinkButton3" runat="server" CommandName="Update">确定修改</asp:LinkButton>&nbsp;<asp:LinkButton
                ID="LinkButton4" runat="server" CommandName="Cancel">取消</asp:LinkButton></td>
    </tr>
</EditItemTemplate>
下面是更新的事件代码:
 protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        int index = Convert.ToInt16(this.DataList1.DataKeys[e.Item.ItemIndex]);
        string txb = ((TextBox)e.Item.FindControl("txtRoleName")).Text.ToString();
        Response.Write(index+","+txb);
    }
问题在于:
我在更新事件中先测试取得的值
这个txb变量,只能取得数据库里面的初始值,比如数据库里面该字段的值是:1000。  我在编辑模式下把它改为20000,
但是txb取得的竟然是1000,不会取得我修改的值,实现不了更新,请大侠帮忙了

解决方案 »

  1.   

    在Page_Load中给数据绑定函数加条件if(!IsPostBack)
      

  2.   

    我只是测试输入不要存入数据库啊,修改按钮点击后,txb变量应该取得的是我重新输入的值,并且把它输出来,Response.write应该是我重新修改的值。我再加上存入数据库的代码一样没用,数据库原来是1000,修改存入数据库还是1000,因为根本就没办法取得修改的值
      

  3.   


    是的,把你的那个绑定写在if(!this.IsPostBack){//绑定data}里面。
      

  4.   

    对了,说到点了,忘记加上!IspostBack了
      

  5.   

    Page_Load中加上
    if(!Page.IsPostBack)
    {
    }