User-719153870 posted
Hi indranillc98,
If you want to convert the data in your datalist to a datatable, please check below demo:
aspx:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
<asp:Label ID="Label1" runat="server" Text='<%#Eval("FirstName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label2" runat="server" Text='<%#Eval("LastName") %>'></asp:Label>
</td>
<td>
<asp:Label ID="Label3" runat="server" Text='<%#Eval("ID") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
<asp:Button ID="Button1" runat="server" Text="Convert" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>
cs:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("FirstName"), new DataColumn("LastName"), new DataColumn("ID") });
dt.Rows.Add("AA", "aa", "1");
dt.Rows.Add("BB", "bb", "2");
dt.Rows.Add("CC", "cc", "3");
DataList1.DataSource = dt;
DataList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
try
{
DataTable dt = new DataTable();
dt = (DataTable)DataList1.DataSource;
Response.Write("S");
}
catch
{
Response.Write("F");
}
}
You can also replace the highlighted part as:
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[3] { new DataColumn("FirstName"), new DataColumn("LastName"), new DataColumn("ID") });
foreach (DataListItem item in DataList1.Items)
{
string FirstName = ((Label)item.FindControl("Label1")).Text;
string LastName = ((Label)item.FindControl("Label2")).Text;
string ID = ((Label)item.FindControl("Label3")).Text;
dt.Rows.Add(FirstName, LastName, ID);
}
Best Regard,
Yang Shen