【发布时间】:2017-10-06 10:58:54
【问题描述】:
我有一个简单的 aspx 页面“默认”,后面有代码。后面的代码有一组简单的方法。
我要做的是创建一个方法 OnGridViewChange() - 请参阅下面的模型 - 每当用户更改网格视图中的一行时都会调用该方法。该行更新本地行列表,然后将对象转换为显示给用户的 json 字符串。
本质上,我正在构建的是一个在 asp.net 网络表单中美化的 json 查看器,它采用 json 字符串,将其显示为表格,然后根据用户更改更新 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
}
}
环顾四周,我发现了来自 Microsoft https://msdn.microsoft.com/en-us/library/ms972948.aspx?f=255&MSPPError=-2147217396 的关于 aspx gridview 的文档,但对于我的用例来说,它似乎不必要地复杂。
有谁知道任何用于 webforms 或其他 asp.net 元素的数据网格插件,它们可以让我将更改绑定到一个简单的事件,例如 OnGridViewChange()。我是网络表单的新手,上面提到的来自 Microsoft 的文章是我能找到的最好的文章,但我觉得一定有更好的方法!
【问题讨论】:
标签: c# asp.net json gridview webforms