【问题标题】:Display dynamic data using GridView/DataList使用 GridView/DataList 显示动态数据
【发布时间】:2010-11-17 06:25:12
【问题描述】:

我需要构建一个显示数据的表单,格式如下:

          M(1 Nov), T(4 Nov), S(7 Nov) etc
user 1    yes/no    yes/no    yes/no   yes/no
user 2    yes/no    yes/no    yes/no   yes/no

是/否将由一个复选框表示,并且该月内的每次出现都会有星期一、星期四和星期日列 - 动态计算。我打算按照here 的解释使用匿名类型来表示数据。这是一种合理的方法吗?我的问题是如何使用 GridView 或 DataList 控件来显示它。如果数据结构是动态的,如何配置 GridView/DataList 控件来绑定数据?

有没有更好的方法来解决我正在尝试的问题?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    使用存储在 ViewState 中的 DataTable 来承载数据并绑定到 GridView / DataList。

    public DataTable MyDynamicDataTable {
        get { return (DataTable)ViewState["MyDynamicDataTable"]; }
        set { ViewState["MyDynamicDataTable"] = value; }
    }
    ...
    public void Page_Load(object sender, EventArgs e) {
        if (!Page.IsPostBack) {
            MyDynamicDataTable = BuildMyDynamicDataTable();
            MyGridView1.DataSource = MyDynamicDataTable;
            MyGridView1.DataBind();
        }
    }
    ...
    public DataTable BuildMyDynamicDataTable() {
        DataTable dt = new DataTable();
        foreach (obj in myDayCollection) {
            dt.Columns.Add(...);
        }
    
        foreach (obj in myCollection) {
            dt.Rows.Add(...);
        }
        return dt;
    }
    

    当用户进行更改时,它应该坚持到 DataTable 结构。一旦更改完成并成功验证,您可以简单地 foreach(MyDynamicDataTable 中的 DataRow)来处理用户所做的选择并将它们保存到数据库或其他任何地方。

    【讨论】:

      猜你喜欢
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多