0

ボタンを押すたびにテーブル コントロールに usercontrl を追加したいのですが、クリック イベントでこのコードを実行しました。最初のクリックでコントロールを取得しましたが、このコントロールが消えた後、解決策を提案できますか? ありがとう。

if (Session["tbl"] == null)
    {
        Session["tbl"] = Table1;
    }
    else
    {
        Table1 = (Table)Session["tbl"];
    }
    TimeSheetRow tr= LoadControl ("TimeSheetRow.ascx") as TimeSheetRow ;
    tr.ID = "tr" + Table1.Rows.Count;


Session.Add((Session.Count + 1).ToString(), tr);



    Table1.Rows.Add(new TableRow());
    Table1.Rows[Table1.Rows.Count -1].Cells.Add(new TableCell());
    Table1.Rows[Table1.Rows.Count - 1].Cells[0].Controls.Add(tr);


    Session["tbl"] = Table1;
4

1 に答える 1

1

コントロール コレクションにコントロールを動的に追加するときはいつでも、ポストバック時にそのコントロールをコントロール ツリーに再度追加する必要があります。そのため、古いユーザー コントロールはすべて、ページの初期化時に再度追加する必要があります。また、セッションを使用してテーブル行への参照を保存しないことを強くお勧めします。テーブルの行をテーブルに再度追加すると、viewstate はそれらのデータを再読み込みします。

于 2013-03-28T12:21:26.193 に答える