转发器与Asp.Net中的存储过程绑定

时间:2012-01-12 03:54:58

标签: asp.net stored-procedures repeater

我有一个存储过程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中处理这种情况?

感谢。

2 个答案:

答案 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") %>