C # -Поле или свойство с именем 'РЕЗЮМЕ' не найдено в выбранном источнике данных - PullRequest
1 голос
/ 13 января 2012

Возникает проблема с привязкой вида сетки, когда отсутствует один из тегов в списке узлов XML.Я получаю сообщение об ошибке ниже:

Поле или свойство с именем 'SUMMARY' не найдено в выбранном источнике данных.

Пожалуйста, кто-нибудь поможет мне, как обрабатывать пропущенные значения во времяпривязка, чтобы я мог отображать пользовательское текстовое сообщение, такое как: «Сводка недоступна»

Я использую .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();

1 Ответ

1 голос
/ 13 января 2012

Эта ошибка вызвана тем, что DataRow DataTable, конечно, не имеет сводки столбцов (AZKSUMMARY).Это может быть решено в вашем методе ConvertToDataTable.Там я предполагаю, что вы создаете столбец для всех существующих узлов.

Необходимо создать все 4 столбца для каждой строки, даже если она не существует в файле XML.Если он не выходит, вы можете добавить нужное вам значение, например, «Сводка недоступна».

Еще лучше будет реализовать объект с 4 свойствами и поместить их в список.Но придерживайтесь таблицы данных, если вам это нравится.

...