Я хочу создать пользовательский фильтр для моей таблицы, который принимает более одного аргумента для поиска в нескольких столбцах из нескольких таблиц. У меня есть 2 таблицы со свойствами компании, связанной по id. Я пытаюсь объединить их, чтобы отфильтровать по «имени» и «адресу», которые находятся в первой таблице и во второй таблице.
В cs
public IHttpActionResult Get()
{
string SearchString = "";
try
{
using (var db = new BD_Avizare_IPEntities1())
{
db.Configuration.LazyLoadingEnabled = false;
db.Configuration.ProxyCreationEnabled = false;
var data = from Obiectiv1 m in db.Obiectiv1
join AvizSI1 mx in db.AvizSI1
on m.id equals mx.id_obiectiv
select new {m,mx};
var z = data.ToList();
return Ok(z);}
Во внешнем интерфейсе у меня есть это:
list-company. html
<tr *ngFor="let firme of listaFirme | namefilter: numeFirma:numeJudet:numeIncadrare">
<td>{{firme.m.numeCompanie}}</td>
<td><button class="btn btn-danger" (click)="onDelete(firme.m.id,stergeForm,$event)" value="{{firme.m.id}}">Sterge</button></td>
<td><button class="btn btn-info" (click)="onEdit(firme.m.id)" value="{{firme.m.id}}">Editeaza</button></td>
</tr>
Здесь я использовал для отображения данных из первой таблицы
<tr *ngFor="let firme of listaFirme | namefilter: numeFirma:numeJudet:numeIncadrare">
<td>{{firme.m.numeCompanie}}</td>
где это m от бэкэнда.
name-filter.pipe.ts
transform(listaFirme:cereri[],numeFirma:string,numeJudet:string,numeIncadrare:string)
{
if (listaFirme && listaFirme.length){
return listaFirme.filter(item =>{
if (numeFirma && item.numeCompanie.toLowerCase().indexOf(numeFirma.toLowerCase()) === -1){
return false;
}
if (numeJudet && item.judet.toLowerCase().indexOf(numeJudet.toLowerCase()) === -1){
return false;
}
if ((numeIncadrare && item.incadrare_HGR571.toLowerCase().indexOf(numeIncadrare.toLowerCase()) === -1) ){
return false;
}
return true;
})
}
else{
return listaFirme;
}
}
Здесь, на канале, я не могу использовать
item.m.numeCompan ie
или item.mx.incadrareHGR, и если я разрешаю без m или mx в браузере, я получаю «не могу прочитать о неопределенных», очевидно.
Как Могу ли я сделать это по-другому?