Как заполнить список на основе значения другого списка в InfoPath - PullRequest
0 голосов
/ 09 июня 2011

У меня есть список, который содержит значения стран. Этот список показан в раскрывающемся списке. У меня есть еще один выпадающий список для штатов. Когда я выбираю страну, выпадающий список должен быть заполнен штатами выбранной страны. Я новичок в InfoPath и не знаю, как этого добиться.

В C # я написал бы что-то вроде этого (пожалуйста, игнорируйте синтаксис):

if(state.country == countryDropDown.SelectedValue)
StateDropDown.add(State);

Как я могу сделать то же самое в InfoPath?

Ответы [ 2 ]

0 голосов
/ 19 ноября 2013

если ваши данные находятся в списке sharepoint, вы можете использовать CAML-запрос для извлечения данных. Вам нужно создать повторяющееся поле и связать это повторяющееся поле с раскрывающимся списком.Чтобы выбрать состояние в зависимости от выбранной страны -

string strCountry=this.maindatasource.createnavigator().selectsinglenode("xpath of country dropdown",namespacemanager).value;

SPList oList = web.Lists["Name of List"];
SPQuery oQuery = new SPQuery();

oQuery.Query = "<Where><Eq><FieldRef Name='column name which contains countries' /><Value Type='Text'>" + strCountry + "</Value></Eq></Where>";

SPListItemCollection oListItemCollection = oList.GetItems(oQuery);

foreach (SPListItem Item in oListItemCollection)
{                                           
   root.SelectSingleNode("xpath of field inside repeating table",NamespaceManager).SetValue(Item["Name of column which holds state"].ToString());

}
0 голосов
/ 23 июня 2011

В раскрывающемся списке состояний добавьте фильтр, чтобы отображались только состояния, принадлежащие стране.Вот ссылка, показывающая, как http://koobarspoint.blogspot.com/2010/06/cascading-drop-downs-with-infopath-2010.html (код не требуется)

...