Я пытаюсь использовать LINQ для заполнения GridView.Мой XML выглядит так:
<?xml version="1.0" ?>
- <!-- Created @ 9/14/2011 1:16:52 PM
-->
- <DoctorList>
- <Doctor ID="1" Specialist="Dentist">
<Username>Ahmed</Username>
<Password>12345</Password>
</Doctor>
- <Doctor ID="2" Specialist="oculist">
<Username>Aya</Username>
<Password>12345</Password>
</Doctor>
- <Doctor ID="3" Specialist="surgery">
<Username>malak</Username>
<Password>12345</Password>
</Doctor>
</DoctorList>
Я использую следующий код:
IEnumerable<XElement> matches = from Doctor in doc.Descendants("Doctor") where (int)Doctor.Attribute("ID") > 1 select Doctor;
GridView1.DataSource= matches;
GridView1.DataBind();
Это возвращает ошибку, что столбец "специалист" не найден.Я хочу отобразить специалиста, атрибут id и все внутренние элементы.Мой gridview выглядит так:
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" HeaderStyle-BackColor="blue" HeaderStyle-ForeColor="White"
HeaderStyle-HorizontalAlign="Center" HeaderStyle-Font-Bold="True"
ondatabound="GridView1_DataBound">
<Columns>
<asp:BoundField HeaderText="Specialist" DataField="Specialist" />
<asp:BoundField HeaderText="ID" DataField="ID" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Username" DataField="Username" ItemStyle-HorizontalAlign="Right" />
<asp:BoundField HeaderText="Password" DataField="Password" ItemStyle-HorizontalAlign="Right" />
</Columns>
<HeaderStyle HorizontalAlign="Center" BackColor="Blue" Font-Bold="True" ForeColor="White"></HeaderStyle>
</asp:GridView>
Я также убедился, что matches
возвращает значение.