sql >> Database >  >> RDS >> Sqlserver

Complexe bewerking op een gridview in C#

Een benadering is om de updates op een meer Ajax-achtige manier toe te staan, zoals Aristos bespreekt. Dit wordt doorgaans beschouwd als een meer gebruiksvriendelijke benadering en zal zeker een betere gebruikerservaring bieden, maar vereist bekendheid met jQuery en JavaScript en de interacties tussen de client en de server zijn vanuit jouw perspectief iets complexer.

Als u het paradigma van webbesturing wilt blijven gebruiken, overweeg dan om de velden "Aankomst op" en "Verlaat op" TemplateFields aan te maken. In de ItemTemplate kunt u doorgaan met het weergeven van de tekst die u samenvoegt in de database, maar u zou een GridView in de EditItemTemplate plaatsen. Deze GridView kan worden gekoppeld aan een gegevensbronbesturingselement (ook in de EditItemTemplate) en geconfigureerd om bewerking te ondersteunen. Als u programmatisch gegevens bindt (d.w.z. u bent niet met behulp van een gegevensbronbesturingselement), dan moet u de gegevens binden aan de onderliggende GridView wanneer de bovenliggende rij bewerkbaar wordt. Dit kan declaratief worden gedaan met behulp van opmaak als volgt:

<asp:TemplateField ...>
    <EditItemTemplate>
        <asp:GridView runat="server" id="gvChild" DataSource='<%# SomeFunction() %>' ...>
           ...
        </asp:GridView>
    </EditItemTemplate>
</asp:TemplateField>

Hier, SomeFunction zou een functie zijn in uw code-behind-klasse (meestal) die de gegevens retourneert om aan het raster te binden.

Als alternatief kunt u de gegevens programmatisch aan de onderliggende GridView binden via de RowDataBound van de bovenliggende GridView. event handler. U zou namelijk controleren of u te maken heeft met de rij die wordt bewerkt (dat wil zeggen, als e.Row.RowIndex = ParentGridViewID.EditIndex ). Als dat het geval is, kunt u programmatisch verwijzen naar de onderliggende GridView met behulp van e.Row.FindControl("ChildGridViewID") en stel vervolgens zijn DataSource . in eigenschap en noem de DataBind methode.

Wanneer een gebruiker op de knop Bewerken voor het bovenliggende raster klikt, worden de cellen "Aankomst om" en "Verlaat om" weergegeven als een raster met eigen knoppen voor bewerken om de individuele tijden te wijzigen. Als alternatief kunt u de onderliggende bewerkbare GridView in de ItemTemplate plaatsen als u de gebruikers de "Aankomst om" en "Verlaat om"-tijden wilt laten bewerken zonder dat de gebruiker eerst hoeft te kiezen om de bovenliggende record te bewerken.



  1. Hoe kan ik een round robin-toernooi genereren in PHP en MySQL?

  2. Hoe deze herhaling te stoppen en te groeperen op datum?

  3. Mysql-functie die een waarde retourneert uit een query

  4. Datumkolommen in SQL-Server (MSSQL-JDBC 3.0) die draaien onder Java 1.7.0, opgehaald als 2 dagen in het verleden