Search Lightswitch搜索屏幕-选择您可以搜索的内容

Search Lightswitch搜索屏幕-选择您可以搜索的内容,search,visual-studio-lightswitch,Search,Visual Studio Lightswitch,我有一个搜索屏幕,显示“项目”实体的结果。其中一个字段是指向具有客户端名称的“客户端”实体的链接 我可以使用数据上方的搜索框按项目名称、日期等进行搜索,但不能按客户名称进行搜索。我猜是因为它实际上是对一个独立实体的引用 如何使我能够使用搜索框按客户名称搜索项目 为了更清楚地解释,这里是数据库布局 Project ------ ProjName ProjType ProjComment Client --------------- Client ---

我有一个搜索屏幕,显示“项目”实体的结果。其中一个字段是指向具有客户端名称的“客户端”实体的链接

我可以使用数据上方的搜索框按项目名称、日期等进行搜索,但不能按客户名称进行搜索。我猜是因为它实际上是对一个独立实体的引用

如何使我能够使用搜索框按客户名称搜索项目

为了更清楚地解释,这里是数据库布局

Project
------
ProjName
ProjType
ProjComment
Client --------------- Client
                       -----
                       Name
                       Address

我可以按项目字段进行搜索,但不能按客户端名称进行搜索。

为项目实体创建自定义查询,并为要搜索的所有项目和客户端属性添加可选参数。连接自定义查询筛选器。
对于完全控制,不要连接自定义查询筛选器,而是在预处理事件的代码隐藏中进行筛选。

如果您使用HTML客户端,则可以在与项目表相关联的浏览屏幕上执行以下操作。如果您查看左侧导航栏,单击编辑查询,在这里,您可以看到3个选项,筛选排序参数

过滤器应显示Client.Name根据您的表结构,第二个应更改为“contains”,第三个应设置为参数,最后第四个框是创建新参数的地方,您将使用它作为搜索框

您可以重命名底部的参数,我总是能找到最好的参数,在右下角的属性框中将其设置为可选。(这意味着在搜索之前,将显示所有数据,而不是什么都不显示)

现在,如果要返回到主屏幕页面,请将此参数从左侧拖到主屏幕页面上,并将其设置为文本框。键入内容后使用此选项并按enter键将显示与您迄今键入内容匹配的结果

更详细地说,如果您要单击“编辑渲染后代码””并添加以下内容,然后在输入3个字符后,您搜索的表格列表将在每次手指划过后自动更新

$searchBox = $("input", $(element));
setTimeout(function () {
    $searchBox.focus();
}, 1);

   onInputAsYouType(element, 1, function (text) {
    contentItem.screen.[CREATED PARAM NAME] = text; //SearchText here is the data item in the screen designer linked to the query parameter
});

function onInputAsYouType(element, numberOfRequiredChars, done) {
    var inputbox = $("input", $(element));
    inputbox.on("input", function (e) {
        var text = $(this).val();
        if (text.length >= numberOfRequiredChars)
            done(text);
    });
};
})