0

こんにちは、1) 指定されたテキストボックスの数を動的に表示し、DB に保存するという要件があります 2) 数を変更すると、新しいテキストボックスを UI に追加する必要があります

例: TextBox AddButton

テキストボックスに 2 を指定して追加をクリックすると、2 つのテキストボックスが表示されます。これらのテキストボックスにいくつかのデータを入力しました。ここで、値を 2 から 5 に変更すると、さらに 3 つのテキスト ボックスを追加する必要があります (条件: 古いテキスト ボックスのデータを保持する必要があります)。2 番目の値が最初の値以下の場合は、何もしません。

私のコードは

 void Append()
    {
        string Data = string.Empty;
        TextBox tb;
        if (Convert.ToInt32(hdnCnt.Value) < Convert.ToInt32(txtNoofGames.Text))
        {
            for (int i = 0; i < Convert.ToInt16(txtNoofGames.Text); i++)
            {
                if (i <= Convert.ToInt32(hdnCnt.Value))
                {
                    tb = (TextBox)Form.FindControl("txtGame1");
                    Data = tb.Text;
                }
                TextBox Newtb = new TextBox();
                Newtb.ID = "txtGame" + i;
                Form.Controls.Add(Newtb);
                if (i <= Convert.ToInt32(hdnCnt.Value))
                {
                    Newtb.Text = Data;
                }
            }
        }
    }
    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (hdnCnt.Value != "")
            Append();
        hdnCnt.Value = txtNoofGames.Text;
        for (int i = 0; i < Convert.ToInt16(txtNoofGames.Text); i++)
        {
            TextBox tb = new TextBox();
            tb.ID = "txtGame" + i;
            Form.Controls.Add(tb);
        }
    }

Data = tb.Text; で「オブジェクト参照がオブジェクトのインスタンスに設定されていません」という例外が発生します。追加メソッドで。

4

2 に答える 2

0

Form.Controls.Add(tb);の代わりに

Page.Form.Controls.Add(tb);を試してください。

于 2012-06-27T13:10:49.837 に答える
0

見た目から初期化していません

    TextBox tb = new TextBox();

それが役立つことを願って、

于 2012-06-27T12:54:36.197 に答える