首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GridView中的XmlDataSource

GridView中的XmlDataSource
EN

Stack Overflow用户
提问于 2012-07-20 01:59:53
回答 3查看 3.2K关注 0票数 0

我有一个xml文件,其结构如下:

代码语言:javascript
复制
<student>
  <name>Rahul</name>
  <name>Sheela</name>
</student>

我需要在网格视图中列出学生的名字。

EN

回答 3

Stack Overflow用户

发布于 2012-07-20 02:01:06

您可以在DataSet中加载该文件,并将该DataSet与GridView绑定。

代码语言:javascript
复制
DataSet ds = new DataSet();
ds.ReadXml("yourfile.xml")

gridview1.DataSource = ds;
gridview1.DataBind();

如果您的数据集有多个表,并且您可能需要像下面这样绑定表

代码语言:javascript
复制
gridview1.DataSource = ds.Tables[0]; // First table in the dataset.
gridview1.DataSource = ds.Tables[1]; // Second table in the dataset.

在有问题的更改之后

同一父级下具有相同名称的两个元素,可以是Firstname、Lastname或RahulSheela

票数 1
EN

Stack Overflow用户

发布于 2012-07-20 02:13:06

如果可以修改XML文件的呈现方式,则可以使用此synthax:

ASP.net标记页

代码语言:javascript
复制
<asp:GridView ID="GridView1" runat="server" DataSourceID="xmlDataSource" 
     AutoGenerateColumns="False">
    <RowStyle BackColor="#EFF3FB" />
    <Columns>
        <asp:TemplateField>
           <ItemTemplate>
              <%# Eval("name") %>
           </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:XmlDataSource ID="xmlDataSource" runat="server" DataFile="~/myxmlsource.xml" />

在这种情况下,如果可能的话,您必须修改您的XML文件,因为我以前一直是这样工作的,并且在尝试您的格式后,它不起作用。也许在互联网上搜索一下就会说这是可能的,但还没有确认。下面是我使用的格式,它工作得很好:

XML文件

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8" ?>
<students>
    <student name="Rahul" />
    <student name="Sheela" />
</students>
票数 0
EN

Stack Overflow用户

发布于 2013-07-14 07:43:07

为您的xml创建一个XSLT转换文件,并将此文件添加到数据源(使用"configre data source "),这用于重塑您的xml文件,以便网格视图可以读取它,而无需更改您的xml结构,确定您的xml结构如下所示

代码语言:javascript
复制
  <student>
    <name>Rahul</name>
    <name>Sheela</name>
  </student>

您的XSLT文件应该如下所示

代码语言:javascript
复制
<xsl:stylesheet version="1.0" xmlns: xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:msxsl="urn:schemas-microsoft-com: xslt" exclude-result-prefixes="msxsl">
<xsl: output method="xml" indent="yes"/>
<xsl:template match ="/">
    <student>
      <xsl:apply-templates select ="//student"/>
    </student>
</xsl:template>
<xsl:template match ="//student">
    <student>
        <xsl:attribute name="name">
            <xsl:value-of select="name"/>
        </xsl:attribute>
    </student>
</xsl:template>
</xsl:stylesheet>

告诉我它能不能用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11566659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档