1

2 つの列を持つ c# でテーブルを動的に作成しました。1 列目はストアド プロシージャから SqlDataReader を使用してデータをフェッチし、2 列目はテキスト ボックスで構成され、1 列目とまったく同じ長さです。最後に、テーブルはプレースホルダー内に配置され、UI に表示されます。その背後にあるアイデアはフォームを作成し、それを完成させた後、すべてのテキストボックスから値を取得してデータベースのテーブルに保存する必要があるボタンがあります.

HtmlTableRow row;
HtmlTableCell cell;
HtmlTableCell celltf;
TextBox text;

protected void createTables(){
HtmlTable dataTable = new HtmlTable();
HtmlTableRow header = new HtmlTableRow();

    while (rdr.Read())
    {
        row = new HtmlTableRow();

        for (int j = 0; j < rdr.FieldCount; j++)
        {
            cell = new HtmlTableCell();
            cell.InnerText = (rdr.GetValue(j)).ToString();

            celltf = new HtmlTableCell();
            text = new TextBox();
            celltf.Controls.Add(text);

            row.Cells.Add(cell);
            row.Cells.Add(celltf);
        }
        dataTable.Rows.Add(row);
    }
    dataTable.DataBind();
}

ボタンがクリックされたときに、すべてのテキストボックスから値を取得する最良の方法は何ですか? Button_clicked() は別の関数であるためです。

4

1 に答える 1

0

これが次のように機能することを約束することはできません: http://lukieb.blogspot.co.uk/2009/03/event-handlers-with-dynamic-controls.html page_load のコントロールの数、イベント ハンドラーへのポストバックを行うと、フォームはすべての値を正しく設定すると思います。その後、テーブルに対して単純な一連の foreach 呼び出しを実行できるようになります。おそらく、テーブルは aspx ページで宣言されているか、ローカルで作成されるのではなく、ページ コントロールに追加されていますか?

于 2012-09-21T14:42:31.520 に答える