ASPNETZERO-查找模态-如何将所选数据返回到父模态

时间:2018-08-21 04:11:27

标签: javascript asp.net-mvc aspnetboilerplate

我从组织单位视图中使用的代码中了解了用户“查找”模式,并为我的实体“公司”重新创建了该代码。

请注意,我没有为我的实体创建新的查找模式视图。我正在使用ABP提供的标准默认查找模式视图。

在我应用程序中的许多其他实体上,它们都在我的创建/编辑模式下使用了company。因此,为了进行测试,我用一个带有搜索图标的文本框替换了一个公司下拉列表,该图标弹出所有公司的查找模式。 enter image description here enter image description here 然后,一旦用户从公司查找模式中选择一行,我想用所选值填充创建模式中的文本框。下面显示的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
    

以上两种方法均无效。有人可以告诉我如何将值恢复为我的创建模式吗?

2 个答案:

答案 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