2017-10-06 1 views
0

J'ai une simple page ASPX "Default" avec un code derrière. Le code derrière a un ensemble de méthodes simples. Ce que je cherche à faire est de créer une méthode OnGridViewChange() - voir la maquette ci-dessous - qui est appelée chaque fois que l'utilisateur change une ligne dans le gridview. La ligne met à jour une liste locale de lignes et convertit ensuite de s'opposer à une chaîne JSON qui est montré à l'utilisateur. Essentiellement, ce que je construis est un visualisateur json glorifié dans les formulaires web asp.net qui prend une chaîne json, l'affiche sous forme de tableau, puis met à jour le json et la table sur les changements d'utilisateur.Mise à jour asp.net gridview élément de spécification JSON

je pense avoir la plupart des principales méthodes décrites ci-dessous, mais ce que je besoin d'aide est la méthode OnUpdate,

public partial class _Default : Page 
{ 
    public class FoobarRow 
    { 
     public string Name { get; set; } 

     public int NumberOfHats { get; set; } 
    } 

    public List<FoobarRow> FoobarRows { get; set; }= new List<FoobarRow>(); 

    /// <summary> 
    /// Vera important json formatted string. Gets updated when gridview changes 
    /// </summary> 
    public string Json { get; set; } 

    /// <summary> 
    /// Updates gridview on the page from the json entered by the user on a previous page 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     FoobarRows = JsonConvert.DeserializeObject<List<FoobarRow>>(GetJsonFromUserWhenPageLoads()); 
     UpdateGridviewFromList(); 
    } 

    /// <summary> 
    /// Actually updates the gridview from the list of FoobarRows 
    /// </summary> 

    private void UpdateGridviewFromList() 
    { 
     ApplicationGridView.DataSource = FoobarRows; 
     ApplicationGridView.DataBind(); 
    } 

    /// <summary> 
    /// Is called whenever user edits any row in the gridview and saves the changes. Updates the json and the local list of rows 
    /// </summary> 
    /// <param name="rows"></param> 
    public void OnGridViewChange(List<FoobarRow> rows) 
    { 
     FoobarRows = rows; 
     DisplayCurrentJsonOnPageForUser(JsonConvert.SerializeObject(rows)); 
     UpdateGridviewFromList(); 
    } 

    public string GetJsonFromUserWhenPageLoads() 
    { 
     //Finish later 
     return "some json the user will have entered on a previous page and will be loaded into a label or something of the like"; 
    } 

    public void DisplayCurrentJsonOnPageForUser(string json) 
    { 
     //Finish later 
    } 
} 

Après avoir regardé autour, j'ai trouvé cette documentation de Microsoft https://msdn.microsoft.com/en-us/library/ms972948.aspx?f=255&MSPPError=-2147217396 sur le GridView ASPX mais il semble inutilement compliqué pour mon utilisation.

Quelqu'un connaît-il un plugin DataGrid pour les formulaires Web ou d'autres éléments asp.net qui me permettrait de lier des modifications à un événement simple tel que OnGridViewChange(). Je suis nouveau à des formes web et l'article de Microsoft mentionné ci-dessus est le meilleur que j'ai réussi à trouver, mais je me sens comme il doit y avoir une meilleure façon!

Répondre