使用repeater-asp.net读取和显示XML文件c#

时间:2012-10-13 12:15:57

标签: c# asp.net xml repeater

我需要你的帮助。 我有这个xml文件,我需要阅读并使用转发器将其显示为一个表。表的标题列应该是一个按钮,如果单击该按钮,则应对列的内容进行排序。

数据显示正常,但问题在于排序,当我点击其中一个按钮时,页面只回发一个空白页面。

我做错了什么?请指正。 thanx

这是aspx的代码

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default2.aspx.cs" Inherits="ex3.Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
            width: 100%;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">


           <asp:Repeater ID="Repeater1" runat="server" 
      >
    <HeaderTemplate>


        <table>
            <tr>

                <th>   <asp:Button ID="btnEvent"  runat="server" Text="event" OnClick="btnEvent_Click" width="100%" EnableViewState="True"  CausesValidation="True" />
                </th>
                <th>   <asp:Button ID="btnDate" runat="server" Text="date" OnClick="btnDate_Click" width="100%" EnableViewState="True"  CausesValidation="True" />
                </th>

            </tr>
    </HeaderTemplate>

    <ItemTemplate>
        <tr>


            <td>
            <asp:Label ID="lbl1" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "title") %>'></asp:Label>
            </td>
            <td>
                <asp:Label ID="lbl2" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "pubDate") %>'></asp:Label>
            </td>


            </tr>
           </ItemTemplate>



    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

    </form>
</body>
</html>

c#的代码:

 public partial class Default2 : System.Web.UI.Page
    {
        DataSet ds;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                ds = new DataSet();
                ds.ReadXml(@"http://www1.biu.ac.il/rss-event-eng.php");
                Repeater1.DataSource = ds;
                Repeater1.DataMember = ds.Tables[2].TableName;
                Repeater1.DataBind();
                form1.Controls.Add(Repeater1);
            }
        }
        protected void btnEvent_Click(object sender, EventArgs e)
        {

            DataSet ds = new DataSet();
            ds.ReadXml(@"http://www1.biu.ac.il/rss-event-eng.php");
            DataView dv = ds.Tables[2].DefaultView;
            dv.Sort = "title ASC";
            Repeater1.DataSource = dv;
            Repeater1.DataBind();


        }


        protected void btnDate_Click(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            ds.ReadXml(@"http://www1.biu.ac.il/rss-event-eng.php");
            DataView dv = ds.Tables[2].DefaultView;
            dv.Sort = "pubDate ASC";
            Repeater1.DataSource = dv;
            Repeater1.DataBind();


        }
    }

1 个答案:

答案 0 :(得分:1)

在Page_Load

中删除此字符串
form1.Controls.Add(Repeater1);