ASP.NET Repeater控件还是自定义实现?

时间:2009-04-14 10:13:29

标签: asp.net user-controls repeater

喂,

最近我在varous网站和博客上阅读了几篇文章,其中ASP.NET Repeater是经验丰富的程序员中最常用和接受的文章之一。 有人写道,如果他提到他经常在求职面试中使用这个控件,他会更好地考虑asp.net程序员。 我很少使用它的事实可能让我成为初学者:) 这是我在需要动态重复控制时使用的实现。

public class MyUserControl:UserControl
{
    LocalizedCheckBox chb;
    LocalizedLabel lbl;
    TextBox txt;


    public MyUserControl()
    {
        //Instantiate controls
    //do something with them
}

public bool Checked
{
    get{ return chb.Checked;}
}
public string Text
{
    get{ return txt.Text; }
}
}


public partial class MyParentControl : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //           
    }
protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

    foreach('something')
    {
        MyUserControl ctr = new MyUserControl();
        ctr.Text="some value";
        ctr.Checked= false;
        this.Panel1.Controls.Add(ctr);
    }
    }
protected void btn_Click(object sender, EventArgs e)
    {
        foreach (MyUserControl dControl in this.Panel1.Controls.OfType<MyUserControl>())
        {
            //do something
    string text = dControl.Text;
        }
    }
}

即使我在MyUserControl上添加了事件,我也从来没有遇到过这个代码的问题。当然,转发器控制可以达到相同的效果,但我想知道为什么(或者更好)使用转发器。

如果我使用转发器会有什么好处?

由于

2 个答案:

答案 0 :(得分:0)

中继器很容易绑定到数据源。

答案 1 :(得分:0)

人, 你最好使用转发器或者更好地在Net 3.5中使用listvew,为什么? - 因为它很容易数据绑定到任何数据源,使用Eval来控制它内部的控件。 - 你得到很多你喜欢的模板,当数据库没有返回结果时我会使用它很多,你可以在这里发一条消息通知用户而不是显示空白屏幕。 - 你可以控制渲染,你想要的表格,Div,UL,你只需要命名它。

我强烈建议投资新的列表视图以重复内容。

希望这会有所帮助