这是一个GridView更新,没有语法问题。
更新((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>
答案 0 :(得分:2)
我认为问题可能在于绑定gridview 您不应该在页面加载时绑定gridview 它应该如下左图
if(!IsPostBack) /// <<<<<<<<<<
{
GridView1.DataSource = yourDataSource;
GridView1.DataBind();
}