2012-08-30 33 views
1

这里是代码。它没有显示任何编译或运行时错误。我也调试,直到数据绑定工作正常。但是,然后也控制不显示在网页上!绑定中继器到堆栈列表

Sample.aspx:

<body> 
    <form id="form1" runat="server"> 
    <asp:PlaceHolder ID="_placeHolder1" runat="server"> 
    </asp:PlaceHolder> 
    </form> 
    </body> 

Sample.aspx.cs:

 protected void Page_Load(object sender, EventArgs e) 
    { 
     _placeHolder1.Controls.Add(CreateReapeater()); 
    } 

    private Control CreateReapeater() 
    { 
     Repeater _repeater1 = new Repeater(); 
     Stack _stack1 = new Stack(); 
     for (int i = 0; i < 7; i++) 
     { 
      _stack1.Push(i); 
     } 
     _repeater1.DataSource = _stack1; 
     _repeater1.DataBind(); 
     return _repeater1; 
    } 
+0

是否有你为什么需要动态和不加中继器在设计时特别的原因? Yup! –

回答

0

其实中继器没有inbuild柱结构像GridView控件。所以当我们动态绑定中继器时,我们还需要为其创建项目模板。

您需要修改createrepeater函数,如下所示。

private Control CreateReapeater() 
{ 
    Repeater _repeater1 = new Repeater(); 
    Stack _stack1 = new Stack(); 
    for (int i = 0; i < 7; i++) 
    { 
     _stack1.Push(i); 
    } 

    _repeater1.DataSource = _stack1;   
    _repeater1.DataBind(); 

    foreach (RepeaterItem repeatItem in _repeater1.Items) 
    { 
     int index = repeatItem.ItemIndex; 

     RepeaterItem repeaterItem = new RepeaterItem(repeatItem.ItemIndex, ListItemType.Item); 
     Label lbl = new Label(); 

     lbl.Text = "Item No :" + index.ToString() + "<br/>"; 
     repeatItem.Controls.Add(lbl); 

    } 



    return _repeater1; 
} 

这将解决您的问题。

编码快乐.....

+0

感谢普拉卡什。得到它了。 :) –