2010-05-13 43 views
0

我尝试使用userControl来显示SqlDataReader数据。SqlDataReader和用户控件

在主页

public SqlDataReader Data2; 

...

<uc1:WebUserControl ID="WebUserControl1" RData1="<%=Data2 %>" runat="server" /> 

,并在用户控件

Repeater1.DataSource = RData1; 

     Repeater1.DataBind(); 



    <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> 
<div class="row"> <b> 
<%#DataBinder.Eval(Container.DataItem, 
"replay_subject")%></b><br /> 
<%#DataBinder.Eval(Container.DataItem, 
"replay_text")%><hr/> </div> 
</ItemTemplate> 
     </asp:Repeater> 

,但我不断收到此错误

无法创建一个对象类型'RData1'属性的字符串表示'<%= Data2%>'中的'System.Data.SqlClient.SqlDataReader'。

回答

4

您不能使用ASPX上的内联代码来分配RData1。编译器尝试将Data2转换为字符串表示形式以设置属性,并且RData1期待SqlDataReader失败。

你必须给它分配的代码背后这样

WebUserControl1.RData1 = Data2;
+0

它并没有从aspx文件识别WebUserControl1对象 – Bob 2010-05-13 14:38:32

+0

@Bob:你的财产分配上的代码隐藏,在CS – 2010-05-13 15:54:03

+0

我做到了。在同一页 是。 但它没有认出它。 有什么理由? – Bob 2010-05-13 16:41:54