在数据表中的for循环中出错
本文关键字:循环 出错 for 数据表 | 更新日期: 2023-09-27 18:25:19
我在一个数据表中遇到一个错误,我想在aspx代码中显示它。(%>)
它给我带来了一个例外:
编译为该请求提供服务所需的资源时出错。请查看以下特定错误的详细信息,并适当地修改源代码。
这是代码:
<%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>
<%}%>
感谢
试试这个:
<%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异常。
这样行吗?
<% foreach (DataRowView row in DTview)
{ %>
<tr><td><%= row["blog_total_views"].ToString() %></td></tr>
// Rest of the rows
<% } %>
至少可以说,您的方法并不好。
将DataTable中的数据显示为HTML表的理想方法是使用GridView控件,这为您提供了对数据的最大灵活性和控制。
如果你不急于花时间学习如何使用以上内容,那没关系,你需要的"第二好"方法是中继器控制,所以我会给出所需的代码。
首先,有这样的.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();