我在Repeater中使用数据源中的Repeater获取错误

时间:2014-09-22 07:39:46

标签: c# asp.net datasource

    

    <b><%# DataBinder.Eval(Container.DataItem, "Hotel_FloorId")%></b> 
     <b><%# DataBinder.Eval(Container.DataItem, "Hotel_FloorName")%></b>    


     <br>
    <asp:repeater id="childRepeater" runat="server" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows ("myrelation") %>' >
        <itemtemplate>
            <%# DataBinder.Eval(Container.DataItem, "[\"RoomDoorNo\"]")%><br>   
        </itemtemplate>
    </asp:Repeater> 

  </itemtemplate>

protected void Page_Load(object sender, EventArgs e)
{

    string css = ConfigurationManager.ConnectionStrings["CS"].ConnectionString;
    SqlConnection cnn = new SqlConnection(css);
    cnn.Open();
    SqlDataAdapter cmd1 = new SqlDataAdapter("SELECT *  FROM   HM_Hotel_Floor", cnn);
    DataSet ds = new DataSet();
    cmd1.Fill(ds, "Floors");
    parentRepeater.DataSource = ds.Tables["Floors"];



    SqlDataAdapter cmd2 = new SqlDataAdapter("select * from HM_Rooms", cnn);
    cmd2.Fill(ds, "Rooms");
    ds.Relations.Add("myrelation", ds.Tables["Floors"].Columns["Hotel_FloorId"], ds.Tables["Rooms"].Columns["Hotel_FloorId"]);
    Page.DataBind();



}

错误是编译器错误消息:CS0246:找不到类型或命名空间名称'DataRowView'(您是否缺少using指令或程序集引用?)

请任何人帮助我

1 个答案:

答案 0 :(得分:0)

代码隐藏(.cs)和页面(.aspx)文件有自己的类,因此它们也有单独的导入。在这种情况下,您在ASPX视图上缺少导入:

<%@ Import Namespace="System.Data" %>

这是必需的,因为您在ASPX视图中将Container.DataItem转换为DataRowView。

此外,请确保您的代码隐藏文件中也包含using语句:

Using System.Data;