我是asp.net的新手,我希望在Bulleted list
中显示数据。我使用以下Foreach
循环获取项目,并希望在asp.net中的Bulleted list
中显示
Result.aspx.cs
foreach (XmlElement statement1 in node2statements.ChildNodes)
{
var st = statement1.InnerText.ToString();
}
Result.aspx
<ul id="section1">
<li>
</li>
</ul>
答案 0 :(得分:1)
我做了一个小例子来演示如何将数据从xml文件绑定到bulletedList。我使用了XmlDataSource个对象。首先我使用了一个xml文件
<强> products.xml 强>
<?xml version="1.0" encoding="utf-8" ?>
<list>
<product id="123">
<name>product a</name>
<price>123.45</price>
</product>
<product id="123">
<name>product b</name>
<price>123.45</price>
</product>
</list>
我创建了转换文件 - 因为只有属性可以在控件中访问。积分转到Darin Dimitrov以指出
... XmlDataSource中的一个错误,它阻止您绑定到xml的值 节点。它仅适用于属性
<强> transform.xsl 强>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="list">
<list>
<xsl:apply-templates select="product"/>
</list>
</xsl:template>
<xsl:template match="product">
<product>
<xsl:attribute name="id">
<xsl:value-of select="@id"/>
</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="name"/>
</xsl:attribute>
<xsl:attribute name="price">
<xsl:value-of select="price"/>
</xsl:attribute>
</product>
</xsl:template>
</xsl:stylesheet>
然后我做了两个例子 - 第一个展示如何在页面中使用。
<form id="form1" runat="server">
<div>
<h3>Bulleted List with XML binding</h3>
<asp:BulletedList ID="blPageOnly" runat="server" DataValueField="id" DataTextField="name" DataSourceID="xmlSource"></asp:BulletedList>
<asp:XmlDataSource ID="xmlSource" runat="server" DataFile="~/app_data/products.xml" TransformFile="~/app_data/transform.xsl" XPath="list/product"></asp:XmlDataSource>
</div>
<div>
<h3>Bulleted List with XML binding - code behind</h3>
<asp:BulletedList ID="blCodeBehind" runat="server"></asp:BulletedList>
</div>
</form>
第二个展示如何从后面的代码中绑定xml文件
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
XmlDataSource xmlSource = new XmlDataSource()
{
DataFile = "~/app_data/products.xml",
XPath="list/product",
TransformFile = "~/app_data/transform.xsl"
};
blCodeBehind.DataSource = xmlSource;
blCodeBehind.DataTextField = "name";
blCodeBehind.DataValueField = "id";
blCodeBehind.DataBind();
}
}
将导致
我希望你能调整我的代码来帮助你!
答案 1 :(得分:0)
使用asp:Repeater并将其与您的子节点绑定
在转发器的项目模板中,您可以定义UL和LI并将它们分配给statement1