У меня есть несколько видов сетки внутри каждой собственной панели обновления. У меня есть кнопки, которые фильтруют данные, но иногда замечают необычные обновления и удаления, которые я не могу определить источник. Одна вещь, которую я выделил, заключается в том, что это происходит, когда я сортирую данные сетки в одной UpdatePanel, а затем пытаюсь обновить другую UpdatePanel.
(все мои представления сетки получают свои данные из одной и той же процедуры DataLoad, которая заполняет каждое представление сетки на основе разных запросов Linq.)
Я разрешил большинство необычных обновлений, вызвав .Update () на всех UpdatePanels после моей функции сортировки, чтобы все "сеточные представления" обновлялись. Но затем все еще есть некоторые случаи, когда данные обновляются, и я не могу изолировать источник.
Похоже, что данные вне одной UpdatePanel на самом деле обновляются "за сценой", и на экране отображаются только кэшированные данные, а затем, когда я редактирую то, что на экране, обновляются неправильные данные, потому что они не были обновлены.
Я предполагаю, что моя стратегия сортировки неверна, так как я сортирую все виды сетки вместо только этого конкретного вида сетки, когда пользователь щелкает заголовок столбца.
Вот моя процедура сортировки, которая вызывается каждым видом сетки:
protected void TaskGridView_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExp = ViewState["SortExpression"] as string;
string sortDir = ViewState["SortDirection"] as string;
if(sortDir == "asc" & sortExp == e.SortExpression.ToString())
ViewState["SortDirection"] = "desc";
else
ViewState["SortDirection"] = "asc";
ViewState["SortExpression"] = e.SortExpression.ToString();
if(searchCol != "" && searchText != "")
DataGrid_Load(DAL.Search_reg_log(OrgText.Text, searchText, searchCol), "reg");
else
DataGrid_Load(DAL.reg_log(HeadText.Text, OrgText.Text), "reg");
UpdatePanels();
}
Я новичок в использовании Ajax и UpdatePanels и хотел бы получить какие-либо указания по разрешению этой ситуации.