locked
Want to get the data from datalist in a variable RRS feed

  • Question

  • User-706628175 posted
    I HAVE A DATALIST.I want to take the data of datalist in a variable.Please help me with this code
    Tuesday, April 7, 2020 8:45 PM

All replies

  • 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

    Wednesday, April 8, 2020 3:23 AM