Run this code
protected void Page_Load(object sender, EventArgs e)
{
CreateDynamicDataList();
}
public void CreateDynamicDataList()
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("Id", typeof(int)),
new DataColumn("Name", typeof(string)),
new DataColumn("Country",typeof(string)) });
dt.Rows.Add(1, "John Hammond", "United States");
dt.Rows.Add(2, "Mudassar Khan", "India");
dt.Rows.Add(3, "Suzanne Mathews", "France");
dt.Rows.Add(4, "Robert Schidner", "Russia");
DataList dl = new DataList();
dl.BorderStyle = BorderStyle.Groove;
dl.ItemTemplate = new DatalistLabelColumnBind();
dl.DataSource = dt;
dl.DataBind();
form1.Controls.Add(dl);
// dl.ItemCommand += new DataListCommandEventHandler(this.ItemCommandHandler);
}
//Create a new class implementing ITemplate
public class DatalistLabelColumnBind : ITemplate
{
public DatalistLabelColumnBind()
{
//Add constructor
}
public void InstantiateIn(Control container)
{
Label label1 = new Label();
label1.DataBinding += new EventHandler(this.BindIdColumn);
container.Controls.Add(label1);
Label lblName = new Label();
lblName.DataBinding += new EventHandler(this.BindNameColumn);
container.Controls.Add(lblName);
Label lblCountry = new Label();
lblCountry.DataBinding += new EventHandler(this.BindCountryColumn);
container.Controls.Add(lblCountry);
}
public void BindIdColumn(object sender, EventArgs e)
{
Label lblId = (Label)sender;
DataListItem container = (DataListItem)lblId.NamingContainer;
lblId.Text = Convert.ToString(DataBinder.Eval(((DataListItem)container).DataItem, "Id"));
}
public void BindNameColumn(object sender, EventArgs e)
{
Label lblId = (Label)sender;
DataListItem container = (DataListItem)lblId.NamingContainer;
lblId.Text = Convert.ToString(DataBinder.Eval(((DataListItem)container).DataItem, "Name"));
}
public void BindCountryColumn(object sender, EventArgs e)
{
Label lblId = (Label)sender;
DataListItem container = (DataListItem)lblId.NamingContainer;
lblId.Text = Convert.ToString(DataBinder.Eval(((DataListItem)container).DataItem, "Country"));
}
}
Ref:
http://stackoverflow.com/questions/22746484/binding-dynamic-datalist-in-c-sharp