2017-08-17 10 views
1

いくつかのフォームフィールドを持つプレビューページがあります。以下は、それらだけのカップルです:ユーザーが送信する前に自分のエントリを確認することができるようになりますように、私がやりたい何'asp:Repeater'内からの認識できないフィールドエラー

<asp:Repeater ID="rptpreview" runat="server"> 
    <ItemTemplate> 
    <table style="width: 100%; border: 1px solid black;"> 
     <tr> 
      <td style="width: 33.3%; border-collapse: collapse; white-space: nowrap;"> 
       Airport where aircraft primary home based city: 
       <asp:Label ID="lblAircraftCity" Text='<%#Eval("aircity") %>' 
       Style="width: 270px; color: #0093B2; font-weight: bold;" 
       runat="server"></asp:Label> 
      </td> 
     </tr> 
    </Table> 
    </ItemTemplate> 
</asp:Repeater> 

は、コードビハインドファイルからこれらのフォームフィールドにパス値です。ここでは、コードビハインドファイルからのデータの小さなサンプルです:

int rowIndex = 0; 

if (ViewState["CurrentTable"] != null) 
{ 
    //Initialize datatable. 
    DataTable ctable = ViewState["CurrentTable"] as DataTable; 
    DataTable preview = ctable.Clone(); 
    int rowNumber = 1; 
    //Lets start looping through the second datatable for aircraft schedule info. . 
    if (ctable.Rows.Count > 0) 
    { 
     for (int i = 1; i <= Repeater2.Items.Count; i++) 
     { 
      DataRow dr = preview.NewRow(); 
      lblAircraftCity.Text = 
       ((TextBox)Repeater2.Items[rowIndex].FindControl("aircraftCity")).Text; 
      lblAircraftcnty.Text = 
       ((TextBox)Repeater2.Items[rowIndex].FindControl("aircraftcnty")).Text; 
      preview.Rows.Add(dr); 
      rowNumber++; 
      rowIndex++; 
     } 
     rptpreview.DataSource = preview; 
     rptpreview.DataBind(); 
    } 
} 

このコードは、フィールドの一部が認識されていないことを示すエラーを投げています。誰も助けることができますか?

+1

問題を伝えるためにタイトルを変更し、質問をコピー編集し、コードの書式を改善して水平にスクロールする必要をなくしました。つまり、「フィールドが認識されない」エラーにつながるエラーについて具体的に説明すると、実際には役に立ちます。 – DavidRR

答えて

0

リピーター内にラベルがあり、TextBoxにキャストして、認識できないフィールドのエラーが発生します。ラベルにキャスト:

DataRow dr = preview.NewRow(); 
dr["aircity"] = ((Label)Repeater2.Items[rowIndex].FindControl("aircraftCity")).Text; 
dr["aircnty"] = ((Label)Repeater2.Items[rowIndex].FindControl("aircraftcnty")).Text; 

あなたはrepectively dr["aircity"]dr["aircnty"]を使用する必要がありますのでlblAircraftCity.TextlblAircraftCnty.Textは、リピータの外にアクセスしていないので、これはあなたの問題を解決します。

関連する問題