2017-10-06 2 views
0

シンプルなaspxページで、コードがデフォルトの "Default"になっています。コードビハインドには一連の簡単なメソッドがあります。json仕様のasp.net gridview要素を更新してください。

私が探しているのは、OnGridViewChange()メソッドを作成することです。下のモックアップを参照してください。これは、ユーザーがgridviewの行を変更するたびに呼び出されます。行は行のローカルリストを更新し、オブジェクトに変換してユーザーに表示されるjson文字列に変換します。

本質的に私が構築しているのは、json文字列を取り、テーブルとして表示してから、ユーザーの変更に関するjsonとテーブルを更新するasp.net Webフォームのglorified jsonビューアです。

私は、私は以下の通り主要な方法のほとんどを持っていると思うが、私は助けが必要ことに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 
    } 
} 

は周りを見回した、私はASPXのGridViewのについてマイクロソフトhttps://msdn.microsoft.com/en-us/library/ms972948.aspx?f=255&MSPPError=-2147217396からこの文書を見つけましたが、私のユースケースにとっては、不必要に複雑に思えます。

誰かが、OnGridViewChange()などの単純なイベントに変更を結びつけることができるwebformsやその他のasp.net要素のDataGridプラグインを知っていますか?私はウェブフォームには新しく、上記のマイクロソフトの記事は私が見つけた最高のものですが、より良い方法が必要であると感じています!

答えて

関連する問題