首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从自动完成方法中排除项目

从自动完成方法中排除项目
EN

Stack Overflow用户
提问于 2010-08-13 20:43:26
回答 1查看 180关注 0票数 0

我有以下代码来获取文本框自动完成扩展器中使用的项目列表:

代码语言:javascript
运行
复制
    return autocomplete.tblAutoCompletes
            .Where(p => p.MemberId == memberid && p.LocationId == locationid && p.ACItem.Contains(prefixText))
            .OrderBy(p => p.ACItem)
            .Select(p => p.ACItem)
            .Take(count)
            .ToArray();

其中,memberid和locationid是会话。

在这个项目列表中,根据用户偏好,我可能希望排除一些项目。此首选项也存储为会话。

举个例子,我有下表:

代码语言:javascript
运行
复制
ACItem ACColumn
aa  Product
ab  Product
ac  Product
ad  Status
ae  Status
af  Status
ag  Category
ai  Category
aj  Category

但是,可能会有这样一种情况:我不希望用户自动完成显示某个状态和/或产品。例如,我不希望用户看到状态"af“或类别"ai”。

当用户登录时,我将这些首选项存储为会话(即"DoNotDisplayaf“或"DoNotDisplayai")

我如何修改我的原始方法,以使自动补全将这些异常考虑在内?

如果我的问题/例子有点模糊,我很抱歉。

感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2010-08-13 20:55:45

我不太确定我是否理解,但是如果您不希望显示所有产品类别,那么您不能在linq查询的Where子句中过滤掉这些类别吗?

代码语言:javascript
运行
复制
.Where(p => p.MemberId == memberid 
     && p.LocationId == locationid 
     && p.ACItem.Contains(prefixText) 
     && shouldBeDisplayed(p)) 

ShouldBeDisplayed是一个函数,它根据会话状态中的条件检查给定的项,以确定它们是否应该显示。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3476893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档