【问题标题】:insert asp tags in innerHtml in a div在 div 的 innerHtml 中插入 asp 标签
【发布时间】:2014-06-04 15:28:54
【问题描述】:

我正在尝试做这种事情:

aspx

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

Page_Load 方法中的aspx.cs

    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();

错误是,在文件 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

我做错了什么?我是 Aspx.net 的新手……复活节快乐!

这是我正在尝试做的,但 Control c 始终为空:

    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()
                   });
           }

【问题讨论】:

    标签: c# javascript asp.net innerhtml


    【解决方案1】:

    您不能将asp 控件添加为文字字符串。您必须像这样添加服务器端控件:

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

    更新

    一种方法是,您可以像这样创建DivIndirizzo

    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);
    

    【讨论】:

    • 是的,但是如果我必须在上面动态创建的 Div 中添加 TextBox?例如在 div
      我该怎么办?我尝试为 div 和 Page.FindControl(ID) 提供一个 ID,但它始终为空(我编辑问题)
    【解决方案2】:

    错误可能是这一行sbDivIndirizzi.Append("&lt;asp:TextBox runat='server' ID='txtIndirizzo' CssClass='form-control'/&gt;");

    试试这个:sbDivIndirizzi.Append("&lt;asp:TextBox runat=\"server\" ID=\"txtIndirizzo\" CssClass=\"form-control\"/&gt;");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-14
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      相关资源
      最近更新 更多