Salah satu pendekatannya adalah mengizinkan pembaruan dengan cara yang lebih Ajaxy, seperti yang dibahas Aristos. Ini biasanya dianggap sebagai pendekatan yang lebih ramah pengguna dan tentu saja akan menawarkan pengalaman pengguna yang lebih baik, tetapi membutuhkan keakraban dengan jQuery dan JavaScript dan interaksi antara klien dan server sedikit lebih kompleks dari sudut pandang Anda.
Jika Anda ingin terus menggunakan paradigma kontrol Web, pertimbangkan untuk membuat bidang TemplateFields "Tiba di" dan "Meninggalkan Di". Di ItemTemplate Anda bisa terus menampilkan teks yang Anda gabungkan di database, tetapi Anda akan meletakkan GridView di EditItemTemplate. GridView ini dapat diikat ke kontrol sumber data (juga di EditItemTemplate) dan dikonfigurasi untuk mendukung pengeditan. Jika Anda mengikat data secara terprogram (yaitu, Anda tidak menggunakan kontrol sumber data) maka Anda harus mengikat data ke GridView anak setiap kali baris induk dapat diedit. Ini dapat dilakukan secara deklaratif menggunakan markup seperti:
<asp:TemplateField ...>
<EditItemTemplate>
<asp:GridView runat="server" id="gvChild" DataSource='<%# SomeFunction() %>' ...>
...
</asp:GridView>
</EditItemTemplate>
</asp:TemplateField>
Di sini, SomeFunction
akan menjadi fungsi di kelas di belakang kode Anda (biasanya) yang mengembalikan data untuk diikat ke kisi.
Atau, Anda dapat mengikat data ke GridView anak secara terprogram melalui RowDataBound
induk GridView pengendali acara. Yaitu, Anda akan memeriksa untuk melihat apakah Anda berurusan dengan baris yang sedang diedit (yaitu, jika e.Row.RowIndex = ParentGridViewID.EditIndex
). Jika demikian, Anda dapat mereferensikan GridView anak secara terprogram menggunakan e.Row.FindControl("ChildGridViewID")
dan kemudian atur DataSource
properti dan panggil DataBind
metode.
Ketika pengguna mengklik tombol Edit untuk kisi induk, sel "Tiba Di" dan "Tinggalkan Di" akan ditampilkan sebagai kisi dengan tombol Editnya sendiri untuk mengubah waktu individual. Atau, Anda dapat menempatkan GridView yang dapat diedit anak di ItemTemplate jika Anda ingin membiarkan pengguna mengedit waktu "Tiba" dan "Tinggalkan Pada" tanpa mengharuskan pengguna memilih untuk mengedit catatan induk terlebih dahulu.