Фильтр ASP.NET C # DropDownList на основе определенной категории элементов из сервиса мыла - PullRequest
1 голос
/ 28 ноября 2011

ОК ... Я застрял здесь.Вроде новых для C # и потребляющих веб-сервисов.Я успешно заполнил DropDownList из службы SOAP, но мне действительно нужно отфильтровать этот список по определенной категории.

Вот что у меня есть:

problemReporting.soapClient s = new problemReporting.soapClient();
problemReporting.NullRequest nr = new NullRequest();
problemReporting.ProblemDescription[] getDescList = s.getProblemDescriptionList(nr);

ddlProblem.DataSource = getDescList;
ddlProblem.DataTextField = "description";
ddlProblem.DataValueField = "code";
ddlProblem.DataBind();

problemReporting.ProblemDescription содержит «категорию», «описание» и «код».Как мне установить DataSource равным getDescList, где category = Category1?(Существует 4 категории элементов. Категория будет установлена ​​пользователем, выбирающим категорию на предыдущей странице, и это значение будет извлечено из URL-адреса с помощью HttpUtility.UrlDecode.)

Заранее благодарю за помощь.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2011

Есть ли причина, по которой вы не делаете это на своем SQL (если вы вообще используете SQL).Если вы не можете, я бы посоветовал вам взглянуть на LinQ2Entities .Удачи!

0 голосов
/ 28 ноября 2011

Попробуйте, вы можете отфильтровать после вызова с помощью Linq, но я рекомендую вам изменить свой веб-сервис на параметр для фильтрации результатов:

problemReporting.soapClient s = new problemReporting.soapClient();
problemReporting.NullRequest nr = new NullRequest();
problemReporting.ProblemDescription[] getDescList = s.getProblemDescriptionList(nr);

var cats = from desc in getDescList 
  where desc.category == "Category1"
  select desc;

ddlProblem.DataSource = cats;
ddlProblem.DataTextField = "description";
ddlProblem.DataValueField = "code";
ddlProblem.DataBind();
...