【问题标题】:ASP.NET Repeater control or custom implementation?ASP.NET Repeater 控件还是自定义实现?
【发布时间】:2009-04-14 10:13:28
【问题描述】:

你好,

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

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

谢谢

【问题讨论】:

    标签: asp.net user-controls repeater


    【解决方案1】:

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

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

    希望对你有帮助

    【讨论】:

    • 谢谢哥们,这种想看的答案,我来看看listview。但是,当我查看中继器的示例时,如果重复控制与多个事件、属性很复杂......
    • 欢迎您,一切都可以像您希望的那样复杂,但通常您可以通过使用 Ondatabound、Onitem create 等事件访问任何数据绑定控件中的所有控件属性和事件列表视图、网格等。然后从那里你使用查找控件并投射它
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-23
      • 1970-01-01
      相关资源
      最近更新 更多