0

我尝试使用 userControl 来显示 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

1 回答 1

4

您不能使用 ASPX 上的内联代码分配 RData1。编译器尝试将 Data2 转换为字符串表示形式以设置属性,而 RData1 需要一个 SqlDataReader,因此它失败了。

你必须像这样在后面的代码上分配它

WebUserControl1.RData1 = Data2;
于 2010-05-13T13:41:56.440 回答