使用linq查询从数据库中获取数据,并将其显示在转发器中动态生成的标签中

时间:2016-11-22 18:26:39

标签: .net linq

客户方:

<asp:Repeater ID="QuestionRepeater" runat="server">
  <HeaderTemplate>
   <ul>
  </HeaderTemplate>
  <ItemTemplate>
    <li><%# Eval("Question_Question") %></li>
  </ItemTemplate>
  <FooterTemplate>
    </ul>
  </FooterTemplate>
</asp:Repeater>

代码背后:

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        this.BindRepeater();
    }
}

private void BindRepeater()
{
    var q = from u in db.tbl_Question select u.Question_Question;
    QuestionRepeater.DataSource = q.ToList();
    QuestionRepeater.DataBind();
}

错误:

使用Eval("Question_Question")函数时出现错误,我也尝试了Bind("Question_Question")

  

DataBinding:'System.String'不包含名为'Question_Question'的属性。

描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Web.HttpException:DataBinding:'System.String'不包含名为'Question_Question'的属性。

1 个答案:

答案 0 :(得分:3)

您将转发器绑定到字符串列表。将活页夹表达式更改为:

<ItemTemplate>
    <%# Container.DataItem?.ToString() ?? string.Empty%>
</ItemTemplate>