各位 我用了repeater控件嵌套来显示一级目录和该一级目录下的二级目录:如
物理
高中物理 初中物理 大学物理
数学
高中数学 大学数学
化学
无机化学 有机化学代码如下
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<table>
<tr>
<td><asp:HyperLink id=Grid_name NavigateUrl='<%# "CategoryDetail.aspx"+"?"+"category_id="+Server.UrlEncode(DataBinder.Eval(Container.DataItem, "FirstDir_id").ToString())%>' runat="server">
<%#Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "FirstDir_name").ToString())%>
</asp:HyperLink>
</td>
</tr>
<tr>
<td>
<uc1:SecondDir ID="SecondDir2" FirstDir='<%# Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "FirstDir_id").ToString())%>' runat=server /></td>
</tr>
</table> </ItemTemplate>
</asp:Repeater>内层repeater定义如下:
public partial class SecondDir : System.Web.UI.UserControl
{
private string firstDir;
protected void Page_Load(object sender, EventArgs e)
{
string sConnectionString = ConfigurationManager.AppSettings["SQLConnectionString"];
//创建一个连接实例
SqlConnection Connection = new SqlConnection(sConnectionString);
Connection.Open();
string sSQL = "select [e].[typeid] as Type_id, " +
"[e].[typename] as Type_name " +
"from Qtype e where fid='" + firstDir + "'";
SqlDataAdapter command = new SqlDataAdapter(sSQL, Connection);
DataSet ds = new DataSet();
command.Fill(ds);
DataView Source;
Source = new DataView(ds.Tables[0]);
Repeater2.DataSource = Source;
Repeater2.DataBind();
Connection.Close();
}
public string FirstDir
{
set
{
this.FirstDir = value; } }
}计划是通过内层repeater的FirstDir属性来传入一级目录的id 然后通过该id来检索一级目录下的二级目录。可是在运行的时候总是不断的执行set{this.FirstDir = value}语句直至溢出 而且value值总是00。
如果我在内层嵌套中只是输出参数,则正确 输入如
语文
00
数学
01
化学
02不知道是内层嵌套的repeater那里错了 请各位指点!!
物理
高中物理 初中物理 大学物理
数学
高中数学 大学数学
化学
无机化学 有机化学代码如下
<asp:Repeater ID="Repeater1" runat="server" >
<ItemTemplate>
<table>
<tr>
<td><asp:HyperLink id=Grid_name NavigateUrl='<%# "CategoryDetail.aspx"+"?"+"category_id="+Server.UrlEncode(DataBinder.Eval(Container.DataItem, "FirstDir_id").ToString())%>' runat="server">
<%#Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "FirstDir_name").ToString())%>
</asp:HyperLink>
</td>
</tr>
<tr>
<td>
<uc1:SecondDir ID="SecondDir2" FirstDir='<%# Server.HtmlEncode(DataBinder.Eval(Container.DataItem, "FirstDir_id").ToString())%>' runat=server /></td>
</tr>
</table> </ItemTemplate>
</asp:Repeater>内层repeater定义如下:
public partial class SecondDir : System.Web.UI.UserControl
{
private string firstDir;
protected void Page_Load(object sender, EventArgs e)
{
string sConnectionString = ConfigurationManager.AppSettings["SQLConnectionString"];
//创建一个连接实例
SqlConnection Connection = new SqlConnection(sConnectionString);
Connection.Open();
string sSQL = "select [e].[typeid] as Type_id, " +
"[e].[typename] as Type_name " +
"from Qtype e where fid='" + firstDir + "'";
SqlDataAdapter command = new SqlDataAdapter(sSQL, Connection);
DataSet ds = new DataSet();
command.Fill(ds);
DataView Source;
Source = new DataView(ds.Tables[0]);
Repeater2.DataSource = Source;
Repeater2.DataBind();
Connection.Close();
}
public string FirstDir
{
set
{
this.FirstDir = value; } }
}计划是通过内层repeater的FirstDir属性来传入一级目录的id 然后通过该id来检索一级目录下的二级目录。可是在运行的时候总是不断的执行set{this.FirstDir = value}语句直至溢出 而且value值总是00。
如果我在内层嵌套中只是输出参数,则正确 输入如
语文
00
数学
01
化学
02不知道是内层嵌套的repeater那里错了 请各位指点!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货