Jedním z přístupů je umožnit aktualizace více Ajaxy způsobem, jak popisuje Aristos. To je obvykle považováno za uživatelsky přívětivější přístup a jistě nabídne příjemnější uživatelské prostředí, ale vyžaduje znalost jQuery a JavaScriptu a interakce mezi klientem a serverem jsou z vašeho pohledu trochu složitější.
Pokud chcete i nadále používat paradigma webového ovládání, zvažte vytvoření polí "Arrives At" a "Leaves At" TemplateFields. V ItemTemplate můžete pokračovat v zobrazování textu, který zřetězíte v databázi, ale do EditItemTemplate byste vložili GridView. Tento GridView by mohl být svázán s ovládacím prvkem zdroje dat (také v EditItemTemplate) a nakonfigurován tak, aby podporoval úpravy. Pokud programově vážete data (tj. nejste pomocí ovládacího prvku zdroje dat), pak budete muset svázat data s podřízeným GridView, kdykoli bude nadřazený řádek upravitelný. To lze provést deklarativně pomocí značek takto:
<asp:TemplateField ...>
<EditItemTemplate>
<asp:GridView runat="server" id="gvChild" DataSource='<%# SomeFunction() %>' ...>
...
</asp:GridView>
</EditItemTemplate>
</asp:TemplateField>
Zde SomeFunction
by byla funkce ve vaší třídě na pozadí kódu (obvykle), která vrací data k navázání na mřížku.
Alternativně můžete data svázat s podřízeným GridView programově prostřednictvím nadřazeného GridView RowDataBound
obsluha události. Konkrétně byste zkontrolovali, zda máte co do činění s upravovaným řádkem (tj. pokud e.Row.RowIndex = ParentGridViewID.EditIndex
). Pokud ano, můžete programově odkazovat na podřízený GridView pomocí e.Row.FindControl("ChildGridViewID")
a poté nastavte jeho DataSource
vlastnost a zavolejte její DataBind
metoda.
Když uživatel klikne na tlačítko Upravit pro nadřazenou mřížku, buňky „Příjezd v“ a „Odejít v“ se zobrazí jako mřížka s vlastními tlačítky Upravit pro úpravu jednotlivých časů. Alternativně můžete do ItemTemplate vložit podřízený upravitelný GridView, pokud byste chtěli umožnit uživatelům upravovat časy „Arrive At“ a „Leave At“, aniž by uživatel musel nejprve zvolit úpravu nadřazeného záznamu.