使用这段代码,我无法获得更新,没有任何更改

本文关键字:更新 任何更 段代码 代码 | 更新日期: 2023-09-27 18:02:40

这是一个GridView Update,没有语法问题。

更新((TextBox)GridView1.Rows[e.RowIndex].FindControl("txt")).Text;后,它返回相同的文本没有任何变化,我无法获得我在文本框

中以更新模式键入的文本

示例:如果我有文本- someText

在更新我键入- newText

返回- someText
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) {
    int id = Convert.ToInt32((GridView1.Rows[e.RowIndex].FindControl("Label1ID") as Label).Text);
    PersonData data = (from x in Domain.Instance.PersonDatas
                                         where x.ID == id
                                         select x).First();
    data.Info = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txt")).Text;
    data.Info1 = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txt1")).Text;
    data.Info2 = ((TextBox)GridView1.Rows[e.RowIndex].FindControl("txt2")).Text;
    Domain.Instance.SaveChanges();
    GridView1.EditIndex = -1;
    DatBind();
}

有一个属性:

  <asp:TemplateField HeaderText="Info">
                    <EditItemTemplate>
                        <asp:TextBox ID="txt" runat="server" Text='<%# Eval("Info") %>'></asp:TextBox>
                    </EditItemTemplate>
                    <ItemTemplate>
                        <asp:Label ID="LabelInfo" runat="server" Text='<%# Eval("Info") %>'></asp:Label>
                    </ItemTemplate>
  </asp:TemplateField>

使用这段代码,我无法获得更新,没有任何更改

我认为问题可能是在绑定gridview。
你不应该在页面加载时绑定gridview。
它应该像下面这样

 if(!IsPostBack)  /// <<<<<<<<<<
 {
    GridView1.DataSource = yourDataSource;
    GridView1.DataBind();
 }
相关文章: