#c# #linq #linq-to-sql #gridview
#c# #linq #linq-to-sql #gridview
Вопрос:
У меня есть GridView на моей странице, но я НЕ добавляю свою строку через GV. Добавление через текстовые поля и последующее отображение его в GV. Теперь проблема в том, что, когда я нажимаю кнопку ДОБАВИТЬ, мой GV не показывает эту обновленную строку. Если я нажму на эту страницу в строке меню, то вся моя страница обновится, и я смогу увидеть свой обновленный GV.
Вот макет моего события ADD_Click():
protected void btnAdd_Click(object sender, EventArgs e)
{
var td = from s in cv.Test1
join r in dt.Test2 on s.ID equals r.ID
where s.Col1 == ColumnName
select s;
gvShowComm.DataSource = td;
gvShowComm.DataBind();
}
catch (Exception err)
{
//Nothing!!!
}
}
else
{
MessageBox.Show("Please Enter Entry for the textboxes!");
}
}
Теперь, когда я добавляю записи, GridView не показывает обновленную запись. Кто-нибудь может сказать мне, что происходит?
Спасибо!
Ответ №1:
Первое, что вы должны проверить, это то, что ваш td
объект имеет правильное количество строк, которое вы ожидаете. GridView
Должна быть правильная привязка к этому объекту, поэтому я предполагаю, что в вашем результате в td
отсутствует строка.
Как вы «добавляете» строку? Вы сначала сохраняете его в БД, а затем запускаете свой вызов linq? Из приведенного выше кода это просто выглядит так, как будто вы вызываете какой-то linq для получения результата, но ничто не показывает, что вы добавляете что-либо, что могло бы привести к тому, что результат будет отличаться от начальной загрузки.
Добавляемый псевдокод должен быть похожим:
- Сохраните новую строку в базе данных
- Извлекает новые данные
- Привязать новые данные к сетке
Вы также могли бы сделать это вручную, извлекая старые данные. Добавьте строку вручную к старым данным (хранящимся в td
вашем примере) перед их привязкой, а затем выполните привязку после того, как вы вручную добавили строку к результату linq.
Комментарии:
1. Спасибо! Это сработало как Jem. Я не извлекал правильные строки из td : (