1

以下のコードを使用して TextBox を動的に作成し、この TextBox にテキストを入力しました。テキストをデータベースに追加するときに、このコントロールの ID を読み取りたいと思います。ボタンのクリックでこの TextBox の ID を取得するにはどうすればよいですか。

for (int i = 0; i < dv_count; i++)
{
    TextBox txt_box = new TextBox();
    txt_box.Text = "";
    txt_box.ID = "s" + i;
    placeholder1.Controls.Add(txt_box);
}

protected void btn_act_proceed_Click(object sender, EventArgs e)
{
    int count = placeholder1.Controls.Count; //always return 0

    if (count > 0)
    {
        int dv_count = count / 2;

        for (int i = 0; i < dv_count; i++)
        {
            TextBox  lbl_type = (TextBox )placeholder1.FindControl("s" + i);
        }
    }
}
4

3 に答える 3

2

これを試して

Aspxページ

<div runat="server" id="plcholder">
</div>
<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

今はコードビハインド

protected void Page_Load(object sender, EventArgs e)
{
    populate();
}

public void populate()
{
    for (int i = 0; i < 3; i++)
    {
        TextBox tb = new TextBox();
        tb.ID = "s" + i;
        tb.Text = "Hello" + i;
        plcholder.Controls.Add(tb);
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    int cont = plcholder.Controls.Count;

    for (int i = 0; i < cont-1; i++)
    {
        TextBox tx = (TextBox)plcholder.FindControl("s" + i);
        Response.Write(tx.Text);
    }
}
于 2013-04-18T06:47:33.400 に答える
0

そもそもプレースホルダーにコントロールを追加しているとは思いません。これを試して

for (int i = 0; i < dv_count; i++)
{
    TextBox txt_box = new TextBox();
    txt_box.Text = "";
    txt_box.ID = "s" + i;
    placeholder1.Controls.Add(txt_box);
}

TextBox lbl_type = (TextBox)placeholder1.FindControl("s" + i);
于 2013-04-18T06:29:59.100 に答える