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

发布于 2024-08-17 09:05:54 字数 142 浏览 4 评论 0原文

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

I'm trying to set the where clause on a LinqDataSource object bound to a GridView programmatically on a button click, but when the GridView rebinds data (for instance, when the user sorts) the Where clause resets back to the empty string. Is there a way to prevent this, or is there a better way to filter my results?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终陌 2024-08-24 09:05:55

也许您只是将 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 事件上绑定从视图状态到您的 where 子句的 fetch 属性?这一切都取决于

Perhaps you just add a ViewState property into your page/user control and then retrieve it on all post back?

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;
}

If that doesn't work, then perhaps bind on the LinqDataSource.Selecting event the fetch property from the viewstate to your where clause?? It all depends

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文