【发布时间】:2014-06-21 07:12:10
【问题描述】:
如何在网格视图中逐行显示作为方法输出的数据?这必须在不使用数据库的情况下完成。请指教。
【问题讨论】:
-
您可以创建一个 Collection 并将其绑定到 GridView 的 itemSource 属性。
标签: c# asp.net visual-studio gridview datagrid
如何在网格视图中逐行显示作为方法输出的数据?这必须在不使用数据库的情况下完成。请指教。
【问题讨论】:
标签: c# asp.net visual-studio gridview datagrid
您说的是asp.net webforms 中的GridView,还是Windows Forms 中的GridView。如果您谈论的是 WebForms GridView,您可以将任何数据集合绑定到 GridView。一般来说,虽然我使用 ListView 来更好地控制标记。
假设你有一个对象和一个集合,
public class MyObject
{
public string Name { get; set; }
public string Address { get; set; }
//.......
}
//run this code in OnInit, public override OnInit(....)....
private List<MyObject> Items = new List<MyObject>();
MyObject mObj = new MyObject() { Name="Test", Address="SomeAddress" };
dataGrid.DataSource = Items;
dataGrid.DataBind();
在标记中...
使用 和 获取 MyObject 迭代中的值。
这也适用于 ListView。我喜欢 listview 的原因是 ListView 有 Layout、Item、Alternating Item、EmptyData 和 InsertItem 方法的模板。它使您可以 100% 控制用于呈现基础数据源的标记。
您不必在任何一个平台上都使用数据库。在 .Net DataSource 中并不意味着支持数据库。它意味着服务于数据的东西。这可能是上面的集合,也可能是数据库数据源..
实际上,它归结为任何实现 IEnumerable 的东西。
【讨论】:
现在对于 Windows 窗体,它几乎是相同的,但您不必做任何标记等...该控件有一个 GUI 并可以完成所有这些,您可以控制列的宽度等...
List<MyObject> items = new List<MyObject>();
items.Add(new MyObject() { Name = "Bob", Address = "101 Some Stree SomeCity SomeState, 11111" });
dataGridView1.DataSource = items;
dataGridView1.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
【讨论】: