Asp.net 使用linq和下拉列表进行搜索
我收到了大约5个类似linq的查询,就像这样Asp.net 使用linq和下拉列表进行搜索,asp.net,linq,drop-down-menu,Asp.net,Linq,Drop Down Menu,我收到了大约5个类似linq的查询,就像这样SortPerson()metod。我正在尝试开发一个使用下拉列表的搜索,用户可以从下拉列表中选择值,并从用户选择使用的一个或多个下拉列表中返回正确的值 有没有一种更简单的方法来实现这一点?非常感谢您的帮助 public void SortPerson() { var personId = ddlPerson.SelectedValue; var data = new MyModelContext(); var documen
SortPerson()
metod。我正在尝试开发一个使用下拉列表的搜索,用户可以从下拉列表中选择值,并从用户选择使用的一个或多个下拉列表中返回正确的值
有没有一种更简单的方法来实现这一点?非常感谢您的帮助
public void SortPerson()
{
var personId = ddlPerson.SelectedValue;
var data = new MyModelContext();
var documents = from d in data.tblDocuments
join sp in data.tblPersons on d.DocPerson equals sp.PersonId
select d;
if (!String.IsNullOrEmpty(personId))
{
documents = documents.Where(c => c.DocPerson.Equals(personId));
}
rptResult.DataSource = documents.ToList();
rptResult.DataBind();
}
如果仍然只选择一个表,我看不出在没有
Where
的情况下加入有什么意义
若您希望在未选择Person的情况下使用所有文档,那个么您无法创建更简单的方法。您可以将其写得更短,如:
var documents =
from d in data.tblDocuments
join ...
where String.IsNullOrEmpty(personId) || d.DocPerson equals personId
select d;
因此,您不需要单独的if
语句
如果要使用5个下拉列表中的多个值,并将它们用作单个查询中的条件,只需添加更多条件:
var personId = ddlPerson.SelectedValue;
var someValue = ddlSomeDDL.SelectedValue;
//3 more values from DDL
var documents = from d in data.tblDocuments
join sp in data.tblPersons on d.DocPerson equals sp.PersonId
where (String.IsNullOrEmpty(personId) || sp.PersonId equals personId)
&& (String.IsNullOrEmpty(someValue) || d.SomeColumn equals someValue)
//3 more conditions
select d;
你所说的“真实的价值观”是什么意思?用“真实”这个词不合适!我想要的eksampel类似于此页面www.fg.fo/index.asp?pID={DA41DFD0-84F3-4641-9300-AE4E9591A9E4}您不会理解该语言,但您会理解函数性,因为我得到的输入字符串格式不正确。如果下拉列表为emtey?
var personId=ddlPerson.SelectedValue代码>现在personId将为wither null或字符串值。