我需要你的帮助。 我有这个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();
}
}
答案 0 :(得分:1)
在Page_Load
中删除此字符串form1.Controls.Add(Repeater1);