C#中的数据绑定

时间:2013-09-27 14:58:37

标签: c# asp.net data-binding

有人可以帮我数据绑定吗?我是.net和c#的新手,我正在学习那些只让我走到一半的教程。 aspx如下:

<asp:Repeater ID="rptContent" runat="server">
  <HeaderTemplate>
    <table>
      <thead>
        <tr>
            <th>T</th>
            <th>L</th>
            <th>S</th>
        </tr>
      </thead>
      <tbody>
  </HeaderTemplate>
  <ItemTemplate>
    <tr>
      <td><%# Eval("T") %></td>
      <td><%# Eval("L")%></td>
      <td><%# Eval("S")%></td>
    </tr>
  </ItemTemplate>
  <FooterTemplate>
    </tbody>
    </table>
  </FooterTemplate>
</asp:Repeater>

但是在后端我不知道如何实际绑定数据。如果有一个教程,有人可以发送给我关注这部分,我会很感激,或者如果你能解释那将是伟大的。

public List<Sample> Results()
    {    
        List<Sample> List = new List<Sample>();    
        myList.Add(new Sample { Title = "Title   
1", Link = "/item.aspx?id=1", Summary = "summary     
for Item 1" });

        return List;
    }  

    public class Content
    {
        public string T
        {
            get;
            set;
        }

        public string L
        {
            get;
            set;
        }

        public string S
        {
            get;
            set;
        }
    }

2 个答案:

答案 0 :(得分:1)

您分配给转发器数据源的集合需要是包含您要绑定到的属性的项目集合。

Results集合中的各个项目不直接拥有LT和&amp; S属性所以在将此集合绑定到转发器时,转发器无法找到这些属性。在您的情况下,您需要绑定到Content个对象的集合:

List<Content> contentResults = new List<Content>();
contentResults.Add(new Content(){L="el", T="tee", S="es"});
rptContent.DataSource = contentResults;
rptContent.DataBind();

答案 1 :(得分:0)

你能直接绑定Sample列表吗?或者你需要将它绑定到类Content?

重要的是:在标记中,当您使用Eval(“”)时,您必须提供要绑定的对象的属性的确切名称。

如果您可以使用Sample I列表,请执行以下操作 ASPX:

<asp:Repeater ID="rptContent" runat="server">
  <HeaderTemplate>
    <table>
      <thead>
        <tr>
            <th>T</th>
            <th>L</th>
            <th>S</th>
        </tr>
      </thead>
      <tbody>
  </HeaderTemplate>
  <ItemTemplate>
    <tr>
      <td><%# Eval("Title") %></td>
      <td><%# Eval("Link")%></td>
      <td><%# Eval("Summary")%></td>
    </tr>
  </ItemTemplate>
  <FooterTemplate>
    </tbody>
    </table>
  </FooterTemplate>
</asp:Repeater>

并在Code-Behind中:

protected void Page_Load(object sender, EventArgs e)
{
    rptContent.DataSource = Results();
    rptContent.DataBind();
}
public List<Sample> Results()
{    
        List<Sample> List = new List<Sample>();    
        myList.Add(new Sample { Title = "Title   
1", Link = "/item.aspx?id=1", Summary = "summary     
for Item 1" });

        return List;
}