C# -A Field или свойство с именем «Сводка» не было найдено на выбранном источнике данных
-
27-10-2019 - |
Вопрос
Я сталкиваюсь с проблемой в привязке Gridview, когда один из тегов в Nodelist XML отсутствует. Я получаю ниже сообщение об ошибке:
Поле или свойство с именем «Сводка» не было найдено на выбранном источнике данных.
Пожалуйста, кто -нибудь помогите мне, как справиться с отсутствующими значениями во время привязки, чтобы я мог отображать пользовательское текстовое сообщение, такое как: «Нет резюме»
Я использую .NET версии 3.5 и привязываю GridView из данных XML.
Код ASPX:
<asp:GridView ID="gvSystemX" runat="server" AutoGenerateColumns="False" AlternatingRowStyle-CssClass="even"
CellPadding="4" Font-Names="Tahoma" Font-Size="Small" ForeColor="#333333" GridLines="None" EmptyDataText="Mayur">
<RowStyle BackColor="#E3EAEB" />
<Columns>
<asp:BoundField HeaderText="TITLE" DataField="AZKTITLE" />
<asp:BoundField HeaderText="DESCRIPTION" DataField="AZKSUMMARY" />
<asp:BoundField HeaderText="SOURCE" DataField="AZKSOURCE" />
<asp:BoundField HeaderText="DATABASE NAME" DataField="DREDBNAME" />
</Columns>
<FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#7C6F57" />
<AlternatingRowStyle CssClass="even"></AlternatingRowStyle>
</asp:GridView>
Код позади:
В объекте ответа я получаю данные XML ...
XmlNamespaceManager nsMgr = new XmlNamespaceManager(response.NameTable);
nsMgr.AddNamespace("autn", "http://schemas.autonomy.com/aci/");
nodeList = response.SelectNodes("autnresponse/responsedata/autn:hit/autn:content/DOCUMENT", nsMgr);
gvSystemX.DataSource = ConvertToDataTable(nodeList);
gvSystemX.DataBind();
Решение
Эта ошибка, поскольку DataRow's DataRow's DataRow, конечно, не имеет резюме столбца (Azksummary). Это может быть решено в вашем конвертодататируемом методе. Там я предполагаю, что вы создаете столбец для всех существующих узлов.
Вы должны создать все 4 столбца для каждой строки, даже если она не существует в файле XML. Если он не выходит, вы можете добавить значение, которое вы хотите, например, «Нет сводного плана».
Еще лучше было бы внедрить объект с 4 свойствами и поместить его в список. Но придерживайтесь данных, если вам это нравится.