0

你好,

最近,我在各种网站和博客上阅读了几篇文章,其中 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 上添加了事件,我也从未遇到过此代码的问题。当然,使用中继器控制也可以达到同样的效果,但我想知道为什么(或者是否)更好地使用中继器。

如果我改用中继器有什么好处?

谢谢

4

2 回答 2

0

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

于 2009-04-14T10:46:34.257 回答
0

伙计,您最好在 Net 3.5 中使用中继器或更好地使用 listvew,为什么?- 因为数据绑定到任何数据源都非常容易,使用 Eval 控制其中的控件。- 你有很多你喜欢的模板,当数据库没有返回结果时,我经常使用它,你可以在这里放一条消息来通知用户而不是显示空白屏幕。- 你可以控制渲染,你想要Tables,Div,UL,你只要命名它。

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

希望这可以帮助

于 2009-04-14T13:12:03.330 回答