Uma abordagem é permitir as atualizações de uma forma mais Ajaxy, como Aristos discute. Esta é normalmente considerada uma abordagem mais amigável e certamente oferecerá uma experiência de usuário mais agradável, mas requer familiaridade com jQuery e JavaScript e as interações entre o cliente e o servidor são um pouco mais complexas do seu ponto de vista.
Se você quiser continuar a usar o paradigma de controle da Web, considere tornar os campos "Chega em" e "Sai em" TemplateFields. No ItemTemplate, você poderia continuar exibindo o texto concatenado no banco de dados, mas colocaria um GridView no EditItemTemplate. Esse GridView pode ser associado a um controle de fonte de dados (também no EditItemTemplate) e configurado para dar suporte à edição. Se você estiver vinculando dados programaticamente (ou seja, não usando um controle de fonte de dados), você precisará associar os dados ao GridView filho sempre que a linha pai se tornar editável. Isso pode ser feito declarativamente usando marcação assim:
<asp:TemplateField ...>
<EditItemTemplate>
<asp:GridView runat="server" id="gvChild" DataSource='<%# SomeFunction() %>' ...>
...
</asp:GridView>
</EditItemTemplate>
</asp:TemplateField>
Aqui,
SomeFunction
seria uma função em sua classe code-behind (normalmente) que retorna os dados para vincular à grade. Como alternativa, você pode vincular os dados ao GridView filho programaticamente por meio do
RowDataBound
do GridView pai manipulador de eventos. Ou seja, você verificaria se está lidando com a linha que está sendo editada (ou seja, se e.Row.RowIndex = ParentGridViewID.EditIndex
). Nesse caso, você pode referenciar programaticamente o filho GridView usando e.Row.FindControl("ChildGridViewID")
e, em seguida, defina seu DataSource
e chame seu DataBind
método. Quando um usuário clica no botão Editar para a grade pai, as células "Chegar em" e "Sair em" serão exibidas como uma grade com botões Editar próprios para modificar os horários individuais. Como alternativa, você pode colocar o GridView editável filho no ItemTemplate se quiser permitir que os usuários editem os horários "Chegar em" e "Sair em" sem exigir que o usuário escolha primeiro editar o registro pai.