2012-01-12 63 views
0

結合我有一個存儲過程SP1這是返回結果集中繼器與存儲過程中Asp.Net

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' does not allow indexed access"

原因很清楚th在Col(1)是痛苦。由於我無法更改存儲過程,因此如何在asp.net中處理這種情況?

謝謝。

回答

0

試試這個。

<asp:Repeater ID="Repeater1" runat="server"> 
    <ItemTemplate> 
     <tr> 
     <td> 
      <%# DataBinder.Eval(Container.DataItem, "Column_Name") %> 
     </td> 
     </tr> 
    </ItemTemplate>       
</asp:Repeater> 

直接提到存儲過程中使用的列名稱。

評論

編輯後嘗試的DataItem的這則

<%# eval("Column_Name") %> 
+0

我試着像你提到的<%#DataBinder.Eval的(的Container.DataItem, 「上校(1)」)%>,但還是同樣的問題。 – Zohaib 2012-01-12 04:26:40

+0

嗯......試試這個然後<%#eval(「Column Name」)%> – Neelam 2012-01-12 09:33:48

1

使用[]索引。第一項(列)的索引值爲0等等。

<%# Eval("[0]") %> 

或者

<%# DataBinder.Eval(Container.DataItem, "[0]")%> 
+0

那麼,有沒有辦法提到存儲過程的返回列名? – Zohaib 2012-01-12 05:57:30

+0

@Zohaib - 發佈的代碼將完全按照您的需求。如果col(1)包含「某物」,則它會打印「某物」。 – adatapost 2012-01-12 06:00:12