这几天项目特别的紧。本来想用新出的 asp.net mvc来做开发的。用了一天感觉还是比较难以驾驭。赶紧抽回来传统的webform开发了。可是偏偏在用DataList的时候做了页面 编辑功能的时候,死活不能更新当前记录。。看代码 aspx

<asp:DataList ID="DataList1" runat="server" DataKeyField="NoticeID"
            oneditcommand="DataList1_EditCommand"
            onupdatecommand="DataList1_UpdateCommand">
          <ItemTemplate>
          <asp:Label ID="lbl_Content" runat="server" Text='<%#Eval("Contents") %>' />
          <asp:LinkButton ID="edit" runat="server" Text="编辑" CommandName="Edit" />
          </ItemTemplate>
          <EditItemTemplate>
            <asp:TextBox ID="tb_Content" runat="server" Text='<%#Eval("Contents") %>' />
            <asp:LinkButton ID="Update" runat="server" Text="更新" CommandName="Update" />
          </EditItemTemplate>
        </asp:DataList>

cs代码:

 

    protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
        {
            DataList1.EditItemIndex = e.Item.ItemIndex;
            BindPage(); //绑定数据
        }

        protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
        {
            int id =(int) DataList1.DataKeys[e.Item.ItemIndex];
            string co = ((TextBox)e.Item.FindControl("tb_Content")).Text.Trim();
            BindPage();//绑定数据
        }

问题来了。每次通过 string co = ((TextBox)e.Item.FindControl("tb_Content")).Text.Trim(); 这个取新的值是,总是取不到。每次多是原来的值,可是我明明改了啊。。。找了一个下午。直接说答案吧。。。。。

就是一定要在

  protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                BindPage();
            }
        }

加上IsPostBack 这样不会每次回发的时候重新绑定了。。。。。郁闷。。。希望对大家也有帮助,我看网上好多人在人这样的问题。特地留个信号。。方便大家。

 

相关文章:

  • 2021-12-06
  • 2021-12-15
  • 2021-06-30
  • 2021-09-11
  • 2022-12-23
  • 2021-06-14
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-28
  • 2021-06-14
  • 2022-01-02
  • 2022-12-23
相关资源
相似解决方案