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!