<asp:Repeater runat="server" ID="rptypelist1" OnItemDataBound="rptypelist_ItemDataBound">
<ItemTemplate>
<tr>
<td background="Images/l3.gif">
<a href="Lists.aspx?Qtid=<%# Eval("ID") %>"></a> <span id="askCount_15"
class="date2">
<%#Eval("SortName")%></span>
<asp:Repeater runat="server" ID="rpquestionlist2">
<ItemTemplate>
<a href="Question.aspx?qid=<%#Eval("SortName")%>">
<%#Eval("SortName")%></a><br />
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
public void RpTypeBind()
{
Conn.Open();
string sql = "select * from sk_ProductSort where ParentID=0 ";
Comm = new OleDbCommand(sql, Conn);
OleDbDataAdapter da = new OleDbDataAdapter(Comm);
DataSet ds = new DataSet();
da.Fill(ds);
this.rptypelist1.DataSource = ds.Tables[0].DefaultView;
this.rptypelist1.DataBind();
Conn.Close();
}
protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptypelist1 = e.Item.FindControl("rptypelist1") as Repeater;//找到里层的repeater对象
DbDataRecord rowv =(DbDataRecord)e.Item.DataItem;//找到分类Repeater关联的数据项
int typeid = Convert.ToInt32(rowv["ID"]); //获取填充子类的id
string sql1 = "select * from sk_ProductSort where ParentID=" + typeid + " ";
Comm = new OleDbCommand(sql1, Conn);
dr = Comm.ExecuteReader();
this.rptypelist1.DataSource = dr;
this.rptypelist1.DataBind();
}
}
出现错误 无法将类型为“System.Data.DataRowView”的对象强制转换为类型“System.Data.Common.DbDataRecord”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 无法将类型为“System.Data.DataRowView”的对象强制转换为类型“System.Data.Common.DbDataRecord”。源错误:
行 218:
行 219: Repeater rptypelist1 = e.Item.FindControl("rptypelist1") as Repeater;//找到里层的repeater对象
行 220: DbDataRecord rowv =(DbDataRecord)e.Item.DataItem;//找到分类Repeater关联的数据项
行 221: int typeid = Convert.ToInt32(rowv["ID"]); //获取填充子类的id
行 222: string sql1 = "select * from sk_ProductSort where ParentID=" + typeid + " ";
<ItemTemplate>
<tr>
<td background="Images/l3.gif">
<a href="Lists.aspx?Qtid=<%# Eval("ID") %>"></a> <span id="askCount_15"
class="date2">
<%#Eval("SortName")%></span>
<asp:Repeater runat="server" ID="rpquestionlist2">
<ItemTemplate>
<a href="Question.aspx?qid=<%#Eval("SortName")%>">
<%#Eval("SortName")%></a><br />
</ItemTemplate>
</asp:Repeater>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
public void RpTypeBind()
{
Conn.Open();
string sql = "select * from sk_ProductSort where ParentID=0 ";
Comm = new OleDbCommand(sql, Conn);
OleDbDataAdapter da = new OleDbDataAdapter(Comm);
DataSet ds = new DataSet();
da.Fill(ds);
this.rptypelist1.DataSource = ds.Tables[0].DefaultView;
this.rptypelist1.DataBind();
Conn.Close();
}
protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptypelist1 = e.Item.FindControl("rptypelist1") as Repeater;//找到里层的repeater对象
DbDataRecord rowv =(DbDataRecord)e.Item.DataItem;//找到分类Repeater关联的数据项
int typeid = Convert.ToInt32(rowv["ID"]); //获取填充子类的id
string sql1 = "select * from sk_ProductSort where ParentID=" + typeid + " ";
Comm = new OleDbCommand(sql1, Conn);
dr = Comm.ExecuteReader();
this.rptypelist1.DataSource = dr;
this.rptypelist1.DataBind();
}
}
出现错误 无法将类型为“System.Data.DataRowView”的对象强制转换为类型“System.Data.Common.DbDataRecord”。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 无法将类型为“System.Data.DataRowView”的对象强制转换为类型“System.Data.Common.DbDataRecord”。源错误:
行 218:
行 219: Repeater rptypelist1 = e.Item.FindControl("rptypelist1") as Repeater;//找到里层的repeater对象
行 220: DbDataRecord rowv =(DbDataRecord)e.Item.DataItem;//找到分类Repeater关联的数据项
行 221: int typeid = Convert.ToInt32(rowv["ID"]); //获取填充子类的id
行 222: string sql1 = "select * from sk_ProductSort where ParentID=" + typeid + " ";
int typeid = Convert.ToInt32(rowv["ID"]); //获取填充子类的id DataRowView rowv = (DataRowView)e.Item.DataItem;
int typeid = Convert.ToInt32(rowv["ID"]); //获取填充子类的id
protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater rptypelist1 = e.Item.FindControl("rptypelist1") as Repeater;//找到里层的repeater对象
int typeid = (Int32)e.Item.DataItem.Item["ID"]; //获取填充子类的id
string sql1 = "select * from sk_ProductSort where ParentID=" + typeid + " ";
Comm = new OleDbCommand(sql1, Conn);
dr = Comm.ExecuteReader();
this.rptypelist1.DataSource = dr;
this.rptypelist1.DataBind();
}
}
以上代码未测试.......