是不是动态加载控件的问题啊?像这种机制,用动态加载控件有用吗?

解决方案 »

  1.   

    代码如下 我建立了个用户控件,然后把他放在了datalist的项摸板中,再对datalist进行分页,代码如下:
    用户控件book.ascx<table border="0" cellpadding="0" cellspacing="0" >
        <tr>
            <td rowspan = "6">
                <asp:Image ID="Image1" runat="server" Style="position: relative" Width="150px" Height="100px" /></td>
            <td >
                <asp:Label ID="Label1" runat="server" Style="position: relative" Text="科目名称:" Width="80px"></asp:Label></td>
            <td >
                <asp:Label ID="lblSubject" runat="server" Style="position: relative; top: 0px;"></asp:Label></td>
        </tr>
        <tr>
           
            <td >
                <asp:Label ID="Label2" runat="server" Style="position: relative" Text="课件标题:" Width="80px"></asp:Label></td>
            <td >
                <asp:Label ID="lblTitle" runat="server" Style="position: relative; top: 0px;"></asp:Label></td>
        </tr>
        <tr>
            
            <td >
                <asp:Label ID="Label3" runat="server" Style="position: relative" Text="任课教师:" Width="80px"></asp:Label></td>
            <td >
                <asp:Label ID="lblTeacher" runat="server" Style="position: relative; top: 1px;"></asp:Label></td>
        </tr>
        <tr>
            
            <td >
                <asp:Label ID="Label4" runat="server" Style="position: relative" Text="上传日期:"></asp:Label></td>
            <td >
                <asp:Label ID="lblInput_time" runat="server" Style="position: relative; top: 0px;"></asp:Label></td>
        </tr>
        <tr>
            
            <td >
                <asp:Label ID="Label5" runat="server" Style="position: relative" Text="在线阅读:" Width="80px"></asp:Label></td>
            <td >
                <asp:HyperLink ID="hlinkDetails" runat="server" Style="position: relative; top: 0px;" Target="_blank">点击这里...</asp:HyperLink></td>
        </tr>
        <tr>
            
            <td 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" >
                <tr>
                    <td 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中调用用户控件.大家帮我看看什么问题,和我一样不明白的可以听知道的人讲讲学习下.谢谢大家