如何防止LinqDataSource Where子句在回发时重置?

时间:2010-01-13 20:29:04

标签: asp.net where-clause linqdatasource

我试图在按钮单击时以编程方式设置绑定到GridView的LinqDataSource对象的where子句,但是当GridView重新绑定数据时(例如,当用户排序时),Where子句重置为空字符串。有没有办法阻止这种情况,还是有更好的方法来过滤我的结果?

1 个答案:

答案 0 :(得分:3)

也许您只需将ViewState属性添加到页面/用户控件中,然后在所有帖子后面检索它?

public string MyLinqSourceWhere 
{
    get { return (string)this.ViewState["MyLinqSourceWhere"]; }
    set { this.ViewState["MyLinqSourceWhere"] = value; }
}

public void Page_Load(object sender, EventArgs e) 
{
    this.myLinqSource.Where = this.MyLinqSourceWhere;
}

public void Button1_Click(object sender, EventArgs e) 
{
    this.MyLinqSourceWhere = " .... ";
    this.myLinqSource.Where = this.MyLinqSourceWhere;
}

如果这不起作用,那么可能在LinqDataSource.Selecting事件上绑定从viewstate到where子句的fetch属性?这完全取决于