我有一个存储过程SP1
,它将结果集返回为
select column1 [Col(1)] from table1
我在ASPX页面中的转发器是这样的:
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<%# Eval("Col(1)")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
但是,调用<%# Eval("Col(1)") %>
,我收到错误:
“DataBinding:'System.String'不允许索引访问”
原因非常清楚Col(1)
是痛苦。由于我无法更改存储过程,所以如何在asp.net中处理这种情况?
感谢。
答案 0 :(得分:1)
使用DataItem的[]
索引器。第一项(列)的索引值为0,依此类推。
<%# Eval("[0]") %>
或者
<%# DataBinder.Eval(Container.DataItem, "[0]")%>
答案 1 :(得分:0)
试试这个。
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<tr>
<td>
<%# DataBinder.Eval(Container.DataItem, "Column_Name") %>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
直接提及存储过程中使用的列名。
评论后编辑
试试这个
<%# eval("Column_Name") %>