私は自分のコードビハインドで動的にデータバインドするグリッドビューを持っています。何らかの理由で、がグリッドビューから(カスタム関数を使用して)行を削除した場合にのみ、ポストバック後にグリッドビューがリフレッシュされません(削除された値が残ります)。しかし、ユーザーが別の方法でグリッドビューをリフレッシュする場合(つまり、アイテムを追加したり、別のタブで適切なアイテムを選択したりするなど)、それは結構です。DatabindはリフレッシュしませんGridview
私はコードビハインドに何が起こっているかを見るためにブレークポイントを置き、明らかにgridviewが正しくバインドされていて、削除されたアイテムはgridview.DataSourceではありません。
私のコードはここにありますので、わからない場合は私に知らせてください! [
protected void bindGridView(long thisId)
{
var query = from items in DataContext.Items
where items.SubSomething.Something.SomethingId == thisId && goals.SubSomething.YearId == selectedYearId //<--another static variable
select items;
Gridview1.DataSource = from items in query.AsEnumerable()
select new
{
items.Field1,
items.Field2,
items.Field3,
Field4 = ((decimal)items.Field4).ToString("N2"),
Field5 = ((decimal)items.Field5).ToString("N2"),
Field6 = String.Format("{0:#,##0}", (long)items.Field6),
Field7 = items.Field4 == null ? "$0.00" : ((decimal)items.Field7).ToString("C"),
};
Gridview1.DataBind();
}
:
if (e.CommandName == "delete")
{
int selectedId = int.Parse(e.CommandArgument.ToString());
//delete selected row from database
var item = (Item)DataContext.Items.Where(item => item.ItemId == selectedId).Single();
if (item != null)
{
DataContext.CompanyGoalPrograms.DeleteObject(item);
}
DataContext.SaveChanges();
bindGridView(currentId); //firing, but not refreshing gv after postback
// currentId is a static variable
}
bindGridView方法(他のすべての時間のと呼ばれる動作しますので、私は問題がここにあるとは思わない):
は行-コマンドを削除します。編集] 面白いのは、それが実行されるだけでなく、実行後(デバッグ中)にデータソースの内容をチェックすると、実際に削除された項目は、データソースから削除されたです。ユーザーに加えられた変更は表示されません。
ちょうど 'Gridview1.DataSourceは=(....から)をしようと、道の外にそれを得るためにToListメソッド();'とそれはどんな違いがあればご覧ください。 –
あなたのgridviewはAJAXの更新パネルにありますか? –
@Bala R nope ...まだ表示されています –