2012-01-27 10 views
0

スケジューラの一種の生徒に時間を割り当てるウェブアプリケーションがあります。動的にロードされたときにユーザコントロールボタンのクリックイベントを呼び出す

このため、私はTimePeriodとしてユーザーコントロールを持ち、このコントロールはWebページに動的に読み込まれます。

私のユーザーコントロールには2つのテキストボックスと1つのボタンコントロールがあり、そのボタンのクリックイベントを見つける必要があります。このボタンでは、関連する2つのテキストボックスの値を取得する必要があります。このボタン。

このユーザーコントロールは、そのページの送信ボタンのイベントで別のページに読み込まれます。 しかし、ページ上のそのユーザーコントロールの数はこれに応じて変化します。私は、ユーザーコントロールのリストを動的に作成するコードを持っています。例の目的のために

私は実際にはこのように見える変化し、10までのj値を設定しています

for (int j = 1; j < 10; j++) 
{ 
    TableRow row = new TableRow(); 
    TableCell cell = new TableCell(); 

    cell.Text = j.ToString(); 
    cell.Height = 10; 
    cell.Width = 75; 
    row.Height = 10; 
    cell.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray); 
    //cell.BackColor = #FFFFFF; 
    row.Cells.Add(cell); 

    TimePeriod ib = (TimePeriod)LoadControl("TimePeriod.ascx"); 
    TableCell cell1 = new TableCell(); 
    cell1.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Gray); 
     cell1.Controls.Add(ib); 
     row.Cells.Add(cell1); 

     tbl1.Rows.Add(row); 
    cell = null; row = null; 
} 

答えて

2

あなたはイベントがページの各ポストバックに追加されていることを確認する必要があります。一般的であるように、最初のページロード、つまり!Page.IsPostBackに限定しないでください。

また、Page_Initではなく、Page_Loadなどのダイナミックコントロールを作成して読み込む必要があります。それはよくある間違いです。 Page_Loadなどで構築すると、ViewStateに追加されずに問題が発生する

関連する問題