У меня есть сетка, которую я динамически связываю с моим кодом.По какой-то причине, и только когда пользователь удаляет строку из вида сетки (используя пользовательскую функцию), после обратной передачи вид сетки не обновляется (удаленное значение остается).Тем не менее, если пользователь обновит представление сетки любым другим способом (т. Е. Добавит элемент, выберет нужный элемент на другой вкладке и т. Д.), Он будет привязан просто отлично.
Я поставил точки останова в своем кодечтобы увидеть, что происходит, и, очевидно, представление сетки привязано правильно, а удаленный элемент отсутствует в его gridview.DataSource.
Вот мой код, поэтому, если вы видите, что я не вижу, просто дайте мне знать!
Удалить Команда строки:
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 метод (работает каждый раз, когда его вызывают, поэтому я не думаю, что проблема здесь):
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();
}
[ПРАВИТЬ] Забавно, что не только делаетон запускается, но когда я проверяю содержимое источника данных после его запуска (во время отладки), элемент, который был фактически удален , удаляется из источника данных, он просто не показывает изменения пользователю.