我正在嘗試使用字符串動態地創建文本框。然後嘗試讀取按鈕點擊。從動態創建的文本框中讀取
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="textboxtest.aspx.cs" Inherits="test2.textboxtest" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<div id="TextBoxDiv" runat="server" class="asid box">
</div>
<asp:Button ID="Button1" runat="server" Text="CreateTextBox" onclick="Button1_Click" />
<asp:Button ID="Button2" runat="server" Text="ReadTextBox" onclick="Button2_Click" />
</asp:Content>
這裏是後面的代碼。
protected void Button1_Click(object sender, EventArgs e)
{
string finalText = @"<input type=""text"" ID=""T1"" runat=""server"">
<asp:TextBox ID=""TB1"" runat=""server""></asp:TextBox>";
TextBoxDiv.InnerHtml = finalText;
}
protected void Button2_Click(object sender, EventArgs e)
{
TextBox txtAddress2 = (TextBox)Page.FindControl("TB1");
foreach (Control c in TextBoxDiv.Controls)
{
if (c is TextBox)
{
TextBox txt = (TextBox)c;
string str = txt.Text;
}
}
}
從代碼中可以看出,我試圖使用find控件訪問文本框,並循環遍歷。但兩者都失敗了。
使用'Placeholder',而不是一個div(它會生成一個div),然後添加控制佔位符,而不是使用InnerHtml –
@ ADreNaLiNe DJ我正在使用innetHTML,因爲我有表,然後添加多個文本框的列。我簡化了代碼。 – user3202862
InnerHtml不會使您的ASP.Net控件「編譯/執行」。它只是插入字符串作爲/是 –