EntityDataSource添加参数和分页

时间:2013-06-08 12:06:42

标签: asp.net

我有ListView with paging和EntityDataSource。 ListView应该显示来自数据库的所有项目但是如果在url中我们有例如短语'cat'它应该只显示标题中带有短语'cat'的项目,所以我有:

public partial class List : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.QueryString["phrase"] != null)
        {
            EntityDataSource1.WhereParameters.Add("Phrase", TypeCode.String, Request.QueryString["phrase"].ToString());
            EntityDataSource1.Where = "it.Title like '%' + @Phrase + '%'";
        }
    }
}

但是当我转到下一页时,我有错误: 参数名称“Phrase”已存在于参数中 集合

我该怎么办?

1 个答案:

答案 0 :(得分:1)

EntityDataSource1.WhereParameters.Clear();

EntityDataSource1.WhereParameters.Add("Phrase", TypeCode.String, '%' + Request.QueryString["phrase"].ToString() +'%'");
EntityDataSource1.Where = "it.Title LIKE @Phrase";

OR

EntityDataSource1.Where = "it.Title LIKE @Phrase";
EntityDataSource1.WhereParameters["Phrase"].DefaultValue
    =  '%' + Request.QueryString["phrase"].ToString() +'%'";