Я следующий код:
string xpathresultBTADSLMAX = "BT/Max Standard";
if (xpathresult2 == "BT ADSL Max")
{
//Creating the CAML query to perfomr the query on the list to find the required values
SPQuery query = new SPQuery();
//try to find items in this list that matches the result of the XPATH query performed
earlier
//in this case "BT/Standard"
string camlquery = @"<Query>
<Where>
<Eq>
<FieldRef Name='Vendor_x0020_Product_x0020_Name'/>
<Value Type='Text'>" + xpathresultBTADSLMAX + @"</Value>
</Eq>
</Where>
</Query>";
query.Query = camlquery;
query.ViewFields = "<FieldRef Name='Fabric_x0020_Name'/><FieldRef
Name='Defined_x0020_For/><FieldRef name='MPLS'/>"; //selecting only the required
fields
from the CAML query
SPListItemCollection listItemCollection = list.GetItems(query);
//string fabricName = (string)item["Fabric_x0020_Name"]; commented out temporarily
//string definedFor = (string)item["Defined_x0020_For"]; commented out temporarily
string fabricName = (string)item["Fabric_x0020_Name"];
string definedFor = (string)item["Defined_x0020_For"];
AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(fabricName, definedFor
));
}
В приведенном выше коде я пытаюсь отобразить конкретную информацию из элемента списка, который имеет имя поставщика Vendor "BT / Max Standard". В настоящее время я хочу отобразить значения «Имя ткани» и «Определено для».
Затем я хочу иметь возможность отображать их в виде подстаканника, добавляя буквальный элемент управления, но он просто не работает. Есть ли что-то, что я делаю здесь не так? Пожалуйста, дайте несколько советов о том, как этого добиться.
За много раз заранее!
ОБНОВЛЕНО !!!
Итак, я внес некоторые изменения в код, которые в основном исправили проблему, упомянутую ранее. Теперь я могу отобразить результаты CAML-запроса в заполнителе asp.
string xpathresultBTADSLMAX = "BT/Max Standard";
//Executing the correct query based on a if condition for BT ADSL
if (xpathresult2 == "BT ADSL Max")
{
//Creating the CAML query to perfomr the query on the list to find the required values
SPQuery query = new SPQuery();
//try to find items in this list that matches the result of the XPATH query performed
earlier
//in this case "BT/Standard"
string camlquery = @"<Query>
<Where>
<Eq>
<FieldRef Name='Vendor_x0020_Product_x0020_Name'/>
<Value Type='Text'>" + xpathresultBTADSLMAX + @"</Value>
</Eq>
</Where>
</Query>";
query.Query = camlquery;
//query.ViewFields = "<FieldRef Name='Fabric_x0020_Name'/><FieldRef
Name='Defined_x0020_For'/><FieldRef name='MPLS'/>"; //selecting only the required
fields from the CAML query, GIVES ERROR
SPListItemCollection listItemCollection = list.GetItems(query);
//string fabricName = (string)item["Fabric_x0020_Name"]; commented out temporarily
//string definedFor = (string)item["Defined_x0020_For"];
//string feniedFor = (string)item["Defined_x0020_For"];
//AvailabilityCheckerResults3.Controls.Add(new LiteralControl(fabricName + " " +
definedFor));
//AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(fabricName));
commented out temporarily
//string fabricName = (string)listItemCollection["Fabric_x0020_Name"].ToString;
/*string fabricName = listItemCollection.ToString();
AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(fabricName));*/
foreach (SPListItem item in listItemCollection)
{
try
{
string results56 = (string)item["Fabric_x0020_Name"] + " " +
(string)item["Defined_x0020_For"] + " " + "<b>MPLS:</b> " + (string)item["MPLS"] +
"<br/>" + "<br/>";
AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(results56));
}
catch (Exception err)
{
AvailabilityCheckerResultsTwo.Controls.Add(new LiteralControl(err.ToString()));
}
}
}
Однако теперь у меня есть еще одна проблема: я получаю все реакции из Списка, а это не ожидаемый результат. Вот вывод:
Альпака
Грязный продукт ADSL для: сторонних интерактивных моделей удаленного доступа CCTV и тестирования веб-сайтов
MPLS: нет
Бернет
Домашний пользователь и продукт SOHO (<5 пользовательских сайтов) Может поддерживать <5 VoIP-соединений с 2 одновременными вызовами. Пакет IPT
MPLS: Да </p>
Запрос CAML должен отображать результаты только для «Альпака». Как я могу получить только необходимый элемент, а не все элементы в списке? Наверное, я что-то не так делаю!
Большое спасибо