我从组织单位视图中使用的代码中了解了用户“查找”模式,并为我的实体“公司”重新创建了该代码。
请注意,我没有不为我的实体创建新的查找模式视图。我正在使用ABP提供的标准默认查找模式视图。
在我应用程序中的许多其他实体上,它们都在我的创建/编辑模式下使用了company。因此,为了进行测试,我用一个带有搜索图标的文本框替换了一个公司下拉列表,该图标弹出所有公司的查找模式。 然后,一旦用户从公司查找模式中选择一行,我想用所选值填充创建模式中的文本框。下面显示的JS代码正在做我想要的一切。我似乎无法弄清的唯一部分是如何将“选定的”名称和值传递回我的创建模式形式。
$(document).ready(function () {
var _companyLookupModal = app.modals.LookupModal.create({
title: app.localize("SelectACompany"),
serviceMethod: abp.services.app.nursingOpsLookup.find_Companies
});
$("#btnTest").click(function (){
_companyLookupModal.open({
title: app.localize('SelectACompany')
}, function (selectedItems) {
//Below is not working, as I assume I am inside the lookup modal
$("#CompanyId").val(selectedItems.value);
$("#CompanyName").val(selectedItems.name);
});
});
});
我尝试过的事情:
使用abp事件总线并设置触发器。
使用下面的JS代码将所选值设置为cookie。
localStorage.setItem('selCmpName', selectedItems.name); //Save
var selCmpName = localStorage.getItem('selCmpName'); //fetch
以上两种方法均无效。有人可以告诉我如何将值恢复为我的创建模式吗?
答案 0 :(得分:0)
您需要返回类似这样的内容,否则selectedItems
将为空。
public async Task<PagedResultDto<NameValueDto>> Find_Companies(FindCompaniesInput input)
{
//filter your companies by the input and return NameValueDto within PagedResultDto
return
new PagedResultDto<NameValueDto>(
companiesCount,
companies.Select(x => new NameValueDto(x.Name, x.Id.ToString())).ToList());
}
您的输入必须来自PagedAndFilteredInputDto
public class FindCompaniesInput : PagedAndFilteredInputDto
{
//your filters...
}
答案 1 :(得分:0)
确保在关闭模态之前已设置结果:
SomeModal.open(
{},
function (callback) {
console.log(callback);
}
);
设置结果将触发回调函数,并且在此示例中将显示“ hello world”。
curl -X POST \
http://localhost:8080/v1/staff/code \
-H 'Accept: */*' \
-H 'Accept-Encoding: gzip, deflate' \
-H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJXQUs4ODY2NDQyMjAwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyLCJleHAiOjI1MTYyMzkwMjJ9.7l_WP6tYT3hv-oQc4iIboFUqStjbP04WiyHPYJ-EqYc' \
-H 'Cache-Control: no-cache' \
-H 'Connection: keep-alive' \
-H 'Content-Length: 260' \
-H 'Content-Type: multipart/form-data; boundary=--------------------------826814601374767521347273' \
-H 'Host: localhost:8080' \
-H 'Postman-Token: 0817c2fb-066b-45ad-96fe-b5cbce33f562,379d26dc-e4d3-48a4-abf7-aefec85a4dea' \
-H 'User-Agent: PostmanRuntime/7.17.1' \
-H 'cache-control: no-cache' \
-H 'content-type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW' \
-F emails=@/C:/Users/ondra/Desktop/emails.txt