2010-11-21 9 views
0

私のasp.netページにテーブルがあり、新しいrows.Iを挿入したいのですが、FileUploadでセルを含む新しい行のボタンをクリックするたびに追加しようとします。初めてのみ私のコードビハインドテーブルの次の時間をクリックすると。コードの背後にあるテーブルに新しい行を追加する問題

<asp:Panel ID="pnlImages" runat="server" BackColor="Gray" Height="500"> 
     <table id="tblImages" runat="server" width="100%"> 
     <tr> 
      <td> 
      <asp:FileUpload ID="FileUpload1" runat="server" /> 
      </td> 
     </tr> 
     <tr> 
      <td align="right" width="100"> 
      <asp:ImageButton ID="imbAddImage" runat="server" ImageUrl="images/plus.png" 
        Width="48" Height="48" OnClick="imbAddImage_Click"/> 
     </td> 
     </tr> 
    </table> 
</asp:Panel> 

これは、ボタンのクリックでコード

protected void imbAddImage_Click(object sender, ImageClickEventArgs e) 
{ 
    System.Web.UI.HtmlControls.HtmlTable tbl = (System.Web.UI.HtmlControls.HtmlTable)this.FindControl("tblImages"); 
    System.Web.UI.HtmlControls.HtmlTableRow row = new System.Web.UI.HtmlControls.HtmlTableRow(); 
    System.Web.UI.HtmlControls.HtmlTableCell cell = new System.Web.UI.HtmlControls.HtmlTableCell(); 
    FileUpload temp = new FileUpload(); 
    cell.Controls.Add(temp); 
    row.Controls.Add(cell); ; 
    int a=tbl.Controls.Count; 
    tbl.Controls.AddAt(a-1, row); 
} 

あるしかし、問題は常に2であるということです誰が助けることはできますか?

答えて

1

ダイナミックコントロールについては、すべてのポストバックに追加する必要があります。

イベントハンドラをクリックすると、最新のファイルのみが追加され、以前のものは保存されません。それらをViewStateに追加し、それらを取得するためにViewStateを照会する必要があります。

this articleを参照してください。ViewStateの詳細については、

関連する問題