Един подход е да се позволят актуализациите по по-Ajaxy начин, както обсъжда Аристос. Това обикновено се счита за по-удобен за потребителя подход и със сигурност ще предложи по-добро потребителско изживяване, но изисква познаване на jQuery и JavaScript, а взаимодействията между клиента и сървъра са малко по-сложни от ваша гледна точка.
Ако искате да продължите да използвате парадигмата за уеб контрол, помислете дали да направите полетата „Пристига в“ и „Тръгва в“ TemplateFields. В ItemTemplate можете да продължите да показвате текста, който свързвате в базата данни, но бихте поставили GridView в EditItemTemplate. Този GridView може да бъде обвързан с контрола на източник на данни (също в EditItemTemplate) и конфигуриран да поддържа редактиране. Ако сте програмно обвързващи данни (т.е. вие не с помощта на контрола на източника на данни), тогава ще трябва да обвържете данните към дъщерния GridView всеки път, когато родителският ред стане редактируем. Това може да се направи декларативно, като се използва маркиране по следния начин:
<asp:TemplateField ...>
<EditItemTemplate>
<asp:GridView runat="server" id="gvChild" DataSource='<%# SomeFunction() %>' ...>
...
</asp:GridView>
</EditItemTemplate>
</asp:TemplateField>
Ето, SomeFunction
ще бъде функция във вашия код зад клас (обикновено), която връща данните за свързване към мрежата.
Като алтернатива можете да обвържете данните към дъщерния GridView програмно чрез RowDataBound
на родителския GridView манипулатор на събития. А именно, ще проверите дали имате работа с реда, който се редактира (т.е. ако e.Row.RowIndex = ParentGridViewID.EditIndex
). Ако е така, бихте могли програмно да посочите дъщерния GridView с помощта на e.Row.FindControl("ChildGridViewID")
и след това задайте неговия DataSource
свойство и извикайте неговия DataBind
метод.
Когато потребител щракне върху бутона Редактиране за родителската мрежа, клетките „Пристигане в“ и „Тръгване в“ ще се покажат като мрежа със собствени бутони Редактиране за промяна на отделните времена. Като алтернатива можете да поставите дъщерния GridView с възможност за редактиране в ItemTemplate, ако искате да позволите на потребителите да редактират часовете „Пристигане в“ и „Тръгване в“, без да се изисква потребителят първо да избере да редактира родителския запис.