为控件实现DataBind()方法的正确方法是什么?其中有一个转发器?
这些是这种控制的要求(但是如果认为这些是缺少某些东西或是开销的话,你可以提供给你的)
我希望我的控件初始化如下:
var control = new Control();
control.DataDateField = "Date";
control.DataNameField = "FullName";
control.DataTextField = "Comment";
control.DataSource = data;
control.DataBind();
Run Code Online (Sandbox Code Playgroud)
数据项可以是以下之一
字典列表(或表格行)
var data = new List<Dictionary<string, string>>
{
new Dictionary<string, string>
{{"Date", "2009-03-15"}, {"FullName", "John Walker"}, {"Comment", "comment1"}},
new Dictionary<string, string>
{{"Date", "2009-03-12"}, {"FullName", "Chuck Norris"}, {"Comment", "comment2"}},
new Dictionary<string, string>
{{"Date", "2009-03-13"}, {"FullName", "Sergej Andrejev"}, {"Comment", "comment3"}}
};
Run Code Online (Sandbox Code Playgroud)
匿名对象列表
var data = new List<object>
{
new {Date = "2009-03-15", FullName = "John Walker", Comment = "comment1"},
new {Date = "2009-03-12", FullName = "Chuck Norris", Comment = "comment2"},
new {Date = "2009-03-13", FullName = "Sergej Andrejev", Comment = "comment3"},
};
Run Code Online (Sandbox Code Playgroud)
对象列表
public class SampleClass
{
public object Date { get; set; }
public object FullName { get; set; }
public object Comment { get; set; }
public SampleClass(string date, string fullName, string comment)
{
Date = date;
FullName = fullName;
Comment = comment;
}
};
var data = new List<SampleClass>
{
new SampleClass("2009-03-15", "John Walker", "comment1"),
new SampleClass("2009-03-12", "Chuck Norris", "comment2"),
new SampleClass("2009-03-13", "Sergej Andrejev", "comment3"),
};
Run Code Online (Sandbox Code Playgroud)
数据表
var data = new DataTable();
data.Columns.Add(new DataColumn { DataType = typeof(DateTime), ColumnName = "Date" });
data.Columns.Add(new DataColumn { DataType = typeof(string), ColumnName = "FullName" });
data.Columns.Add(new DataColumn { DataType = typeof(string), ColumnName = "Comment" });
data.Rows.Add(new object[] { DateTime.Parse("2009-03-15"), "John Walker", "comment1" });
data.Rows.Add(new object[] { DateTime.Parse("2009-03-12"), "Chuck Norris", "comment2" });
data.Rows.Add(new object[] { DateTime.Parse("2009-03-13"), "Sergej Andrejev", "comment3" });
Run Code Online (Sandbox Code Playgroud)
基本上我想要的是数据绑定的通用代码,所以每次创建新控件时我都不会浪费时间从头开始创建它.我将不胜感激任何良好做法,官方指南以及您的个人经历.
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |