2017-08-17 42 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

您在Repeater中有一個Label並將其轉換爲TextBox,從而引發無法識別的字段錯誤。鑄造它標籤:

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

這將解決你的問題,因爲lblAircraftCity.TextlblAircraftCnty.Text沒有直放站外部訪問,所以你必須使用dr["aircity"]dr["aircnty"] repectively。