实体框架搜索功能ASP.NET Webforms

时间:2015-03-06 21:44:24

标签: asp.net entity-framework search repeater

我有一个包含服装产品的SQL2014数据库。

使用网格视图,表单视图,转发器以及现在的实体框架将数据库集成到ASP.NET webforms网站中。

我希望在网站上有一个简单的搜索功能,用户可以在其中搜索产品的部分名称,然后产品名称显示在列表中(数据库字段名为'名称')

我有一个文本框控件(txtWord),按钮(btnSearch)和转发器(rptrSearch)来显示结果。

然后我在按钮上添加了一个方法,我认为该方法可以显示搜索结果但是我什么也没得到。

C#代码

protected void btnSearch_Click(object sender, EventArgs e)
    {
        string searchWord = txtWord.Text;

        ZaraEntities db = new ZaraEntities();

        var results = db.Products.Where(p => p.Name == searchWord);

        rptrSearch.DataSource = results.ToList();
        rptrSearch.DataBind();

    }

HTML

<asp:TextBox ID="txtWord" runat="server"></asp:TextBox>
<asp:Button ID="btnSearch" runat="server" Text="Button" />
<asp:Repeater ID="rptrSearch" runat="server">
    <HeaderTemplate>
        <div>
    </HeaderTemplate>

    <ItemTemplate>
        <div>
        </div>
    </ItemTemplate>

    <FooterTemplate>
        </div>
    </FooterTemplate>
</asp:Repeater>

代码有问题和/或是否与我的转发器空白有关?

2 个答案:

答案 0 :(得分:2)

您似乎正在尝试准确匹配数据字段,而不是您指定的部分名称 以下代码段显示了如何使用Contains运算符进行部分字段查找。

试试这个:

var results = from p in db.Products
   where p.Name.Contains(searchWord)
   select p;

答案 1 :(得分:0)

您是否希望数据显示在圣殿骑士团中?在这种情况下,您需要向模板添加控件并向其添加数据绑定表达式

编辑你可以尝试在后面的代码中找到控件然后将数据直接绑定到后面代码中的控件

又一次修改this may help