Question

I'm trying to do this kind of thing:

aspx

   <div runat="server" id="divAltriIndirizzi">
   </div>

aspx.cs in Page_Load method

    StringBuilder sbDivIndirizzi = new StringBuilder();
    for (int i = 0; i < dtInd.Rows.Count; i++)
           {
               sbDivIndirizzi.Append("<div class='row'> ");
               sbDivIndirizzi.Append("<div class='col-lg-12'>");
               sbDivIndirizzi.Append("<h3>Indirizzo "+ (i+1).ToString() +"</h3>");
               sbDivIndirizzi.Append("<div class='form-group'>");
               sbDivIndirizzi.Append("<div class='row'>");
               sbDivIndirizzi.Append("<div class='col-lg-8' ID='DivIndirizzo'+(i+1).ToString()>");
               sbDivIndirizzi.Append("Indirizzo:");
               sbDivIndirizzi.Append("<asp:TextBox runat='server' ID='txtIndirizzo' CssClass='form-control'/>");
               sbDivIndirizzi.Append("</div>");
               sbDivIndirizzi.Append("</div>");
               sbDivIndirizzi.Append("</div>");
               sbDivIndirizzi.Append("</div>");
               sbDivIndirizzi.Append("</div>");
           }

           divAltriIndirizzi.InnerHtml= sbDivIndirizzi.ToString();

the error is, in file BrowserLink:

          Eccezione non gestita alla riga 37, colonna 59140 in http://localhost:52479/46dd86a4956a46e08caee509120ba667/browserLink

          0x800a139e - Errore di run-time di JavaScript: Syntax error, unrecognized expression: unsupported pseudo: TextBox

What I'm doing wrong? I'm pretty new on Aspx.net.... Happy Easter!

This is what I'm trying to do but Control c is always null:

    for (int i = 0; i < dtInd.Rows.Count; i++)
           {

               sbDivIndirizzi = new StringBuilder();
               sbDivIndirizzi.Append("<h3>Indirizzo "+ (i+1).ToString() +"</h3>");
               sbDivIndirizzi.Append("<div class='form-group'");
               sbDivIndirizzi.Append("<div class='row'>");
               sbDivIndirizzi.Append("<div class='col-lg-8' ID = 'DivIndirizzo"+ (i+1).ToString()+"'>");
               sbDivIndirizzi.Append("Indirizzo:");
               sbDivIndirizzi.Append("</div>");
               sbDivIndirizzi.Append("</div>");
               sbDivIndirizzi.Append("</div>");

               divAltriIndirizzi.InnerHtml = sbDivIndirizzi.ToString();
               Control c = null;

               c=Page.FindControl("DivIndirizzo" + (i + 1).ToString());
               if (c != null)
                    c.Controls.Add(
                   new TextBox()
                   {
                       ID = "txtIndirizzo" + (i + 1).ToString(),
                       CssClass = "form-control",
                       Text = dtInd.Rows[i]["Indirizzo"].ToString()
                   });
           }
Was it helpful?

Solution

You can't add asp controls as literal string. You must add server side controls like that:

divAltriIndirizzi.Controls.Add(
    new TextBox ()
    {
        ID = "txtIndirizzo",
        CssClass= "form-control"
    });

Update:

One way is, you can create DivIndirizzo like that:

System.Web.UI.HtmlControls.HtmlGenericControl subDiv = new System.Web.UI.HtmlControls.HtmlGenericControl("DIV");      
subDiv.ID = "DivIndirizzo"+ (i+1);
subDiv.Attributes["class"]= "col-lg-8";
subDiv.Controls.Add(
    new TextBox ()
    {
        ID = "txtIndirizzo",
        CssClass= "form-control"
    });

divAltriIndirizzi.Controls.Add(subDiv);

OTHER TIPS

The error could be this line sbDivIndirizzi.Append("<asp:TextBox runat='server' ID='txtIndirizzo' CssClass='form-control'/>");

Try this one :sbDivIndirizzi.Append("<asp:TextBox runat=\"server\" ID=\"txtIndirizzo\" CssClass=\"form-control\"/>");

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top