как привязать XML к gridview - PullRequest
1 голос
/ 26 июля 2011

Это мой xml файл

<ISPChecklist>
            <Domain name="Coping Skills">
            <Indicator>
                Client shows impovement in either 1 of the areas listed below and shows reduction in frequency of inapporiate coping behaviors :
                - anger management
                - ability to make concrete plans about his/her future
                - self percetion/self worth
                - expand internal locus of control.
            </Indicator>
            <AttainmentDate></AttainmentDate>
            <Remarks></Remarks>
        </Domain>
</ISPChecklist>

Это мой вид сетки

<asp:GridView ID="ISPChecklist" runat="server" 
                OnRowDataBound="OnDataBound" 
                onselectedindexchanged="ISPChecklist_SelectedIndexChanged">
            <Columns>
            <asp:BoundField HeaderText="Domain" DataField= "Domain" />
            <asp:BoundField HeaderText="Indicator" DataField="Indicator" />
            <asp:TemplateField HeaderText="Date Of Attainment">
                <ItemTemplate>
                    <asp:TextBox runat="server" ID="TB_Date" Columns="5"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Remarks">
                <ItemTemplate>
                    <asp:TextBox runat="server" ID="TB_Remarks" Columns="5"></asp:TextBox>
                </ItemTemplate>
            </asp:TemplateField>
            </Columns>
            </asp:GridView>

Это мой файл .cs

DataSet checklistDataSet;

string filePath = Server.MapPath("clientISPChecklist.xml");
        checklistDataSet = new DataSet();
        //Read the contents of the XML file into the DataSet

        checklistDataSet.ReadXml(filePath);
        ISPChecklist.DataSource = checklistDataSet.Tables[0].DefaultView;
        ISPChecklist.DataBind();//errors occurs here

Всякий раз, когда я запускаю этот набор кодов, я получаю сообщение об ошибке, в котором говорится, что «поле или свойство с именем« Навыки копирования »не было найдено в выбранном источнике данных». Кто-нибудь знает, как это решить? если нет, то есть какие-либо учебные пособия или руководства

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Используйте XMLDataSource и XPath() метод.

0 голосов
/ 27 июля 2011

Я думаю, что Linq-XML - лучший вариант.

XDocument doc = XDocument.Load(MapPath("~/filename.xml"));

var result = from n in doc.Descendants("Domain")
             select new
                {
                   Domain = n.HasAttributes ? n.Attribute("name").Value : "",
                   Indicator=n.Element("Indicator").Value,
                   AttainmentDate = n.Element("AttainmentDate").Value,
                   Remark=n.Element("AttainmentDate").Value 
               };

ISPChecklist.DataSource = result.ToList();
ISPChecklist.DataBind();
...