再一次发贴,关于repeater嵌套repeater的问题
昨天已经发过一次了,虽然大家给了我一些解决方法,但最终还是没有成功,可能是由于我菜吧
今天仔细地翻了一遍百度,csdn,msdn,以及其它一些论坛
看了些文章,
其中有两篇:http://support.microsoft.com/kb/326338/EN-US/#kb2,http://www.ymw.cn/it/CSDN/asppost1/web14028.htm,感觉这种方法不错,所以就用了这种办法,连接什么的都对了,但最终于还是有些问题
我先把代码贴一下,不然真有点难说
前台代码:
<asp:Repeater id="Repeater1" runat="server">
<ItemTemplate>
<ul>
<%# DataBinder.Eval(Container.DataItem, "sortid") %>
<%# DataBinder.Eval(Container.DataItem, "sortName") %>
<asp:Repeater ID="Rpin" Runat="server" datasource='<%# ((DataRow)Container.DataItem).GetChildRows("myrl") %>'>
<ItemTemplate>
<li>
<%#DataBinder.Eval(Container.DataItem,"Logname")%>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</ItemTemplate>
</asp:Repeater>
后台代码:
public class RpInRp : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
protected System.Web.UI.WebControls.Repeater Repeater1;
private void Page_Load(object sender, System.EventArgs e)
{
SqlConnection myconn = new SqlConnection("Server=localhost;Database=web%5cnet;User ID=sa;Password=;Trusted_Connection=False");
SqlCommand mycmd=new SqlCommand();
SqlDataAdapter mydt=new SqlDataAdapter();
DataSet myds = new DataSet();
mycmd.Connection=myconn;
mycmd.Connection.Open();
mycmd.CommandText="select * from logsort";
mydt.SelectCommand=mycmd;
mydt.Fill(myds,"logsort");
SqlCommand mycmd2=new SqlCommand();
SqlDataAdapter mydt2 = new SqlDataAdapter("select * from loginfo ",myconn);
mydt2.Fill(myds,"loginfo");
myds.Relations.Add("myrl",myds.Tables["logsort"].Columns["sortid"],myds.Tables["LogInfo"].Columns["sortid"]);
Repeater1.DataSource = myds.Tables["logsort"].DefaultView;
Repeater1.DataBind();
Page.DataBind();
DataGrid1.DataSource = myds.Tables["logsort"].DefaultView;
DataGrid1.DataBind();
myconn.Close();
}
报错:指定的转换无效。
行 20: <asp:Repeater ID="Rpin" Runat="server" datasource='<%# ((DataRow)Container.DataItem).GetChildRows("myrl") %>'>
曾经偿试:
1.
用Container.DataItem.Row.GetChildRows("myrelation")时
报错:“object”并不包含对“Row”的定义
行 20: <asp:Repeater ID="Rpin" Runat="server" datasource='<%# Container.DataItem.Row.GetChildRows("myrelation") %>'>
2.
用(Container.DataItem,DataRow).GetChildRows("myrelation2")时
报错:CS1026: 应输入 )
行 20: <asp:Repeater ID="Rpin" Runat="server" datasource='<%#(Container.DataItem,DataRow).GetChildRows("myrelation2") %>'>
3.
用((DataRow)Container.DataItem).GetChildRows("myrelation2") 时
报错:CS1026: 指定的转换无效。
行 20:<asp:Repeater ID="Rpin" Runat="server" datasource='<%# ((DataRow)Container.DataItem).GetChildRows("myrelation2") %>'>
4.
用((DataRow)Container.DataItem).GetChildRows("myrelation2") 时
报错:CS1026: 指定的转换无效。
行 20:<asp:Repeater ID="Rpin" Runat="server" datasource='<%# ((DataRow)Container.DataItem).GetChildRows("myrelation2") %>'>
实在是想不出办法了,希望大家能帮帮我,谢谢了