在datagrid的ItemUpdate事件里,我想更新数据,但我编辑后,把数据改了后,用FindControl找到的值怎么是我编辑前的啊?怪!!!
aspx中的定义
<asp:TemplateColumn HeaderText="新闻标题">
<HeaderStyle Width="40%"></HeaderStyle>
<ItemStyle Width="40%"></ItemStyle>
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "heading") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox Text='<%# DataBinder.Eval(Container.DataItem,"heading")%>' id="heading" size="40" Runat=server>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
cs中代码如下:
public void DoItemUpdate(object sender, DataGridCommandEventArgs e)
{
TextBox heading=(TextBox)e.Item.FindControl("heading");
TextBox source =(TextBox)e.Item.Cells[2].Controls[0];
String strSql="UPDATE wqnews SET heading='"+heading.Text+"',"
+"source='"+source.Text+"'";
conn.Open();
Response.Write(strSql);
cmd=new SqlCommand();
cmd.CommandText=strSql;
cmd.Connection=conn;
cmd.ExecuteNonQuery();
conn.Close();
MyDataGrid.EditItemIndex=-1;
BindData();
}