代码之家  ›  专栏  ›  技术社区  ›  BuddyJoe

无子角色的数据转发器

  •  0
  • BuddyJoe  · 技术社区  · 15 年前

    在datarepeater控件中,正确的方法是什么?

                    <asp:Repeater ID="Repeater1" runat="server">
                    <ItemTemplate>
                    <strong><%= Eval("FullName") %></strong><br />
                    <p>
                    <%= Eval("Summary") %>
                    </p>
                    </ItemTemplate>
                    </asp:Repeater>
    

    数据绑定方法,如Eval()、XPath()和Bind()只能在数据绑定控件的上下文中使用。

    我只想写下全名和摘要。但我不想嵌套子角色。 是雷普森斯。写得最好吗?

    : 不确定这是否必要,但我能解决的唯一方法是控制

    2 回复  |  直到 15 年前
        1
  •  3
  •   3Dave    15 年前

    中继器需要一个数据源,按如下方式分配:

    public class Foo
    {
    public string FullName { get;set; } 
    public string Summary {get;set; }
    
    public Foo(fullName,summary)
    {
      FullName=fullName;
      Summary=summary;
    }
    }
    
    /// elsewhere...
    List<Foo> myFoos = new List<Foo>();
    myFoos.Add(new Foo("Alice","Some chick"));
    myFoos.Add(new Foo("Bob","Some guy"));
    myFoos.Add(new Foo("Charlie","Indeterminate"));
    Repeater1.DataSource = myFoos;
    Repeater1.DataBind();
    

    如本例所示,您的数据源可以是任何实现IEnumerable的对象—列表是我的最爱,但C中的大多数集合都属于这一类。你的数据源 必须来自数据库或任何特定的地方。

    您不必使用response.write或subcrols。(无论如何,服务器控件在中继器内部无效)。你可以试着替换

    <%=Eval("...
    

    具有

    <%#Eval("...
    

    我不确定两者的区别,但第二种形式在大多数例子中都使用。

        2
  •  0
  •   Chris    15 年前

     <%# DataBinder.Eval(Container.DataItem, "FullName") %>
    
    推荐文章