如何从asp.net c#中动态添加的div标签中的动态添加标签下拉列表中检索数据



我在C#中向ASP.NET页面上的表单动态添加标签和下拉列表(不是固定数量的标签、下拉列表),在发布页面后如何从这些控件中读回数据?

代码:-

for (int newNames = 0; newNames < dtDDLBindName.Rows.Count; newNames++)
        {
            System.Web.UI.HtmlControls.HtmlGenericControl divMapClient = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            divMapClient.ID = 100 + "divMapClient" + newNames;
            divMapClient.Attributes.Add("class", "row");
            divMapClient.Attributes.Add("runat", "server");

            System.Web.UI.HtmlControls.HtmlGenericControl divNewClients = new System.Web.UI.HtmlControls.HtmlGenericControl("div");
            divNewClients.ID = 100 + "divNewClients" + newNames;
            divNewClients.Attributes.Add("runat", "server");
            divNewClients.Attributes.Add("class", "col-sm-6");
            Label lblNewClientName = new Label();
            lblNewClientName.ID = "lblNewClientName" + newNames;
            lblNewClientName.Attributes.Add("runat", "server");
            lblNewClientName.Text = dtDDLBindName.Rows[newNames]["Investor Name"].ToString();

            divNewClients.Controls.Add(lblNewClientName);
            Label lblNewClientID = new Label();
            lblNewClientID.ID = "lblNewClientID" + newNames;
            lblNewClientID.Attributes.Add("runat", "server");
            lblNewClientID.Style.Add("display", "none");
            lblNewClientID.Text = dtDDLBindName.Rows[newNames]["Investor Id"].ToString();

            divNewClients.Controls.Add(lblNewClientID);
            divMapClient.Controls.Add(divNewClients);
            divmain.Controls.Add(divMapClient);
            System.Web.UI.HtmlControls.HtmlGenericControl br = new System.Web.UI.HtmlControls.HtmlGenericControl("br");
            divmain.Controls.Add(br);
        }

您可以使用Control.FindControl,它将控件的id作为字符串,并在此控件中查找。

Label l = (Label)ContainerControl.FindControl("ID");

您可以将id分配给控件,使其成为这些控件的id。例如,创建id为lbl1、lbl2的标签,然后可以使用循环获取所有标签。

for(int i=0 i < lablesCount; i++)
{
  Label l = (Label)ContainerControl.FindControl("lbl" + i);
  //Your processing goes here
}

最新更新