2012-02-22 86 views
0

我在數據表中出現錯誤,我想在aspx代碼中顯示它。 (%>)數據表for循環中的錯誤

扔我一個例外:

出錯該請求提供服務所需資源的編譯過程中出現。請查看以下具體的錯誤細節並適當修改您的源代碼。

這是代碼:

<%for (int i = 0; i < DTview.Rows.Count; i++)%> 
    <% {%> 
     <tr><%=DTview.Rows[i]["blog_total_views"].ToString(); %></tr> 
     <tr><%=DTview.Rows[i]["first_name"].ToString(); %></tr> 
     <tr><%=DTview.Rows[i]["is_affiliate"].ToString(); %></tr> 
     <tr><%=DTview.Rows[i]["rating"].ToString(); %></tr> 
     <tr><%=DTview.Rows[i]["price"].ToString(); %></tr> 
     <tr><%=DTview.Rows[i]["current_city"].ToString(); %></tr> 
     <%}%> 

由於

+1

不要你還需要一個''​​在那裏? – Niklas 2012-02-22 09:52:01

+3

我不認爲在聲明結尾處允許使用分號。 – Abbas 2012-02-22 09:52:51

+1

你的錯誤信息中引用的具體錯誤細節在哪裏?他們說什麼? – kufi 2012-02-22 09:52:53

回答

5

嘗試這種情況:

<%for (int i = 0; i < DTview.Rows.Count; i++)%> 
<% {%> 
    <tr> 
     <td><%=DTview.Rows[i]["blog_total_views"] %></td> 
     <td><%=DTview.Rows[i]["first_name"] %></td> 
     <td><%=DTview.Rows[i]["is_affiliate"] %></td> 
     <td><%=DTview.Rows[i]["rating"] %></td> 
     <td><%=DTview.Rows[i]["price"] %></td> 
     <td><%=DTview.Rows[i]["current_city"] %></td> 
    </tr> 
    <%}%> 

你必須下降分號(;),使用時<%=%> ,因爲它會直接編寫變量的輸出,當字段值爲null時,您還將使用.ToString()來獲得Null異常。

+0

我想你(或OP)應該忽略除第一個''和除最後一個''之外的所有內容。 – 2012-02-22 10:03:37

+0

@hans,謝謝,我認爲每一次迭代應該只有1 創建 – jerjer 2012-02-22 10:07:17

2

這項工作?

<% foreach (DataRowView row in DTview) 
{ %> 
    <tr><td><%= row["blog_total_views"].ToString() %></td></tr> 
    // Rest of the rows 
<% } %> 
1

你的方法不好,至少可以說。

將數據從DataTable作爲HTML表格顯示的理想方式是使用GridView control - 這爲您提供了最大的靈活性和對數據的控制。

如果你不急於花時間學習如何使用上面的代碼,那麼對於你需要的「次優」方法是Repeater控制,所以我將給出所需的代碼。

首先,有這樣.aspx標記:

<asp:Repeater id="rptMyView" runat="server"> 
    <HeaderTemplate><table><tbody></HeaderTemplate> 
    <ItemTemplate> 
     <tr> 
      <td><%# DataBinder.Eval(Container.DataItem, "blog_total_views")%></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "first_name")%></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "is_affiliate")%></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "rating")%></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "price")%></td> 
      <td><%# DataBinder.Eval(Container.DataItem, "current_city")%></td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate></tbody></table></FooterTemplate> 
</asp:Repeater> 
在後面的代碼

然後:(例如Page_Load方法)

rptMyView.DataSource = DTview; 
Repeater1.DataBind();