我建立了个用户控件,然后把他放在了datalist的项摸板中,再对datalist进行分页,代码如下:
用户控件book.ascx
<table border="0" cellpadding="0" cellspacing="0" style="width: 317px; position: relative;
height: 131px; left: 0px; top: 0px;">
<tr>
<td style="width: 200px" rowspan = "6">
<asp:Image ID="Image1" runat="server" Style="position: relative" Width="150px" Height="100px" /></td>
<td style="width: 161px;">
<asp:Label ID="Label1" runat="server" Style="position: relative" Text="科目名称:" Width="80px"></asp:Label></td>
<td style="width: 100%;">
<asp:Label ID="lblSubject" runat="server" Style="position: relative; top: 0px;"></asp:Label></td>
</tr>
<tr>
<td style="width: 161px; ">
<asp:Label ID="Label2" runat="server" Style="position: relative" Text="课件标题:" Width="80px"></asp:Label></td>
<td style="width: 100%;">
<asp:Label ID="lblTitle" runat="server" Style="position: relative; top: 0px;"></asp:Label></td>
</tr>
<tr>
<td style="width: 161px;">
<asp:Label ID="Label3" runat="server" Style="position: relative" Text="任课教师:" Width="80px"></asp:Label></td>
<td style="width: 100%;">
<asp:Label ID="lblTeacher" runat="server" Style="position: relative; top: 1px;"></asp:Label></td>
</tr>
<tr>
<td style="width: 161px">
<asp:Label ID="Label4" runat="server" Style="position: relative" Text="上传日期:"></asp:Label></td>
<td style="width: 100%">
<asp:Label ID="lblInput_time" runat="server" Style="position: relative; top: 0px;"></asp:Label></td>
</tr>
<tr>
<td style="width: 161px; height: 19px;">
<asp:Label ID="Label5" runat="server" Style="position: relative" Text="在线阅读:" Width="80px"></asp:Label></td>
<td style="width: 100%; height: 19px;">
<asp:HyperLink ID="hlinkDetails" runat="server" Style="position: relative; top: 0px;" Target="_blank">点击这里...</asp:HyperLink></td>
</tr>
<tr>
<td style="width: 100%;" colspan ="2">
</td>
</tr>
</table>
book.ascx.cs
public partial class student_book : System.Web.UI.UserControl
{
string courseTitle;
public string CourseTitle
{
set
{
this.courseTitle = value.ToString();
}
}
string courseSubject;
public string CourseSubject
{
set
{
this.courseSubject = value.ToString();
}
}
string uploader;
public string Uploader
{
set
{
this.uploader = value.ToString();
}
}
protected void Page_Load(object sender, EventArgs e)
{
SqlConnection con = DB.CreateDB();
con.Open();
SqlCommand cmd = new SqlCommand("select * from courseWare where courseTitle='" + this.courseTitle + "'and courseSubject='"+ this.courseSubject+"'and uploader='"+ this.uploader+"'", con);
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
this.lblSubject.Text = sdr.GetString(2);
this.lblTitle.Text = sdr.GetString(1);
this.lblTeacher.Text = sdr.GetString(5);
this.lblInput_time.Text = sdr.GetDateTime(6).ToShortDateString();
this.Image1.ImageUrl = sdr.GetString(4);
}
sdr.Close();
con.Close();
this.hlinkDetails.NavigateUrl = "LearnDetalis.aspx?Title=" + Server.UrlEncode(this.courseTitle) + "& Subject="+ Server.UrlEncode(this.courseSubject) + "&uploader="+ Server.UrlEncode(this.uploader);
}
}
datalist的分页代码是
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.currentPage.Text = "1";
this.DataBindToDataList();
}
}
private void DataBindToDataList()
{
int curPage = Convert.ToInt32(this.currentPage.Text);
SqlConnection con = DB.CreateDB();
con.Open();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand("select * from courseWare order by input_time Desc,courseId Desc", con);
DataSet ds = new DataSet();
sda.Fill(ds, "course");
//对PagedDataSource 对象的相关属性赋值
PagedDataSource pds = new PagedDataSource();
pds.DataSource = ds.Tables["course"].DefaultView;
pds.AllowPaging = true;
pds.PageSize = 4;
pds.CurrentPageIndex = curPage - 1;
this.lbtn_next.Visible = true;
this.lbtn_prior.Visible = true;
if (curPage == 1)
{
this.lbtn_prior.Visible = false;
}
if (curPage == pds.PageCount)
{
this.lbtn_next.Visible = false;
}
this.DataList1.DataSource = pds;
this.DataList1.DataBind();
con.Close();
}
protected void lbtn_next_Click(object sender, EventArgs e)
{
this.currentPage.Text = Convert.ToString( Convert.ToInt32(this.currentPage.Text) + 1);
this.DataBindToDataList();
}
protected void lbtn_prior_Click(object sender, EventArgs e)
{
this.currentPage.Text = Convert.ToString(Convert.ToInt32(this.currentPage.Text) - 1);
this.DataBindToDataList();
}
这是分页传递的参数CourseTitle,CourseSubject,Uplaoder
<table border="1" cellpadding="0" cellspacing="0" style="left: 30px; width: 700px;
position: relative; top: 30px">
<tr>
<td style="width: 100%" align="center">
<asp:DataList ID="DataList1" runat="server" RepeatColumns="2" Style="position: relative" ShowFooter="False" ShowHeader="False">
<ItemTemplate>
<uc1:book ID="Book1" runat="server" CourseTitle='<%# Eval("courseTitle","{0}") %>' CourseSubject='<%# Eval("courseSubject","{0}") %>' Uploader='<%# Eval("uploader","{0}") %>'/>
</ItemTemplate>
<AlternatingItemTemplate>
<uc1:book ID="Book2" runat="server" CourseTitle='<%# Eval("courseTitle","{0}") %>' CourseSubject='<%# Eval("courseSubject","{0}") %>' Uploader='<%# Eval("uploader","{0}") %>'/>
</AlternatingItemTemplate>
</asp:DataList>
<asp:Label ID="Label2" runat="server" Style="position: relative" Text="当前页:"></asp:Label>
<asp:Label ID="currentPage" runat="server" Style="position: relative" ></asp:Label>
<asp:LinkButton ID="lbtn_next" runat="server" Style="position: relative" OnClick="lbtn_next_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lbtn_prior" runat="server" Style="position: relative" OnClick="lbtn_prior_Click">上一页</asp:LinkButton></td>
</tr>
</table>
现在的问题是第一次打开页面时,数据有.但是我点击下一页就没有数据传进来.
我是在datalist中调用用户控件.
大家帮我看看什么问题,和我一样不明白的可以听知道的人讲讲学习下.谢谢大家