学习每一种语言必不可少的就是控件的学习。每种语言的开发环境中的控件也都大同小异。Asp.net控件很简单,设置一下控件的属性直接把控件拿过来用就可以了,而在Cs中如果控件要验证一下是否为空还要编写代码,这是Asp.net的优势。
而每当点击ASP.NET的Web网页上的Button、LinkButton或ImageButton等控件时,表单就会被发送到服务器上。如果控件的AutoPostBack属性设置成true的话,每次控件的状态改变,将发送一个request到服务器,这种频繁的与服务器打交道,增加服务器的压力,所以现在使用了Ajax。
asp.net控件总结:
asp.net控件总共有四种类型,每种类型的使用也都相同,只要知道各自的不同的地方就可以轻松掌握了。
举例子:
Repeater控件的使用:Repeater控件用户显示重复的项目列表,这些项目被限制在该控件。Repeater控件有5个模板,下面来应用一下。
web窗体代码:
<asp:Panel ID="Panel1" runat="server" Height="297px" Width="496px"> <asp:Repeater ID="Repeater1" runat="server"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem,"pID") %><%# DataBinder.Eval(Container.DataItem,"personName") %> </ItemTemplate> <AlternatingItemTemplate> <font color="red"> <%# DataBinder.Eval(Container.DataItem,"pID") %> <br /> <%# DataBinder.Eval(Container.DataItem,"personName") %> </font> </AlternatingItemTemplate> <HeaderTemplate> <h3>模板页眉</h3> </HeaderTemplate> <FooterTemplate> <h3>模板页脚</h3> </FooterTemplate> <SeparatorTemplate> <hr /> <hr /> </SeparatorTemplate> </asp:Repeater> </asp:Panel>
后台代码:
public partial class repeaterControl : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!this.IsPostBack) { this.Label3.Text = "1"; this.dataBindToRepeater(); } } /// <summary> /// 构造一个方法,打开数据库和查询数据库中数据,并分页显示 /// </summary> private void dataBindToRepeater() { //定义当前页 int curPage = Convert.ToInt32(this.Label3.Text); //连接打开数据库并查询 SqlConnection con = DB.createCon(); SqlDataAdapter sda = new SqlDataAdapter(); sda.SelectCommand = new SqlCommand("select * from person", con); DataSet ds = new DataSet(); sda.Fill(ds,"ado"); System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource(); ps.DataSource = ds.Tables["ado"].DefaultView; ps.AllowPaging = true; //每页显示三行 ps.PageSize = 3; ps.CurrentPageIndex = curPage - 1; this.Button1.Enabled = true; this.Button2.Enabled = true; //如果是第一页,上一页按钮不能用 if (curPage==1) { this.Button1.Enabled = false; } //如果是最后一页下一页按钮不能用 if (curPage==ps.PageCount) { this.Button2.Enabled = false; } //数据源绑定 this.Repeater1.DataSource = ps; this.Repeater1.DataBind(); } /// <summary> /// 上一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button1_Click(object sender, EventArgs e) { //将label3的内容强制转换为字符串类型 this.Label3.Text =Convert.ToString( Convert.ToInt32(this.Label3.Text)-1); this.dataBindToRepeater(); } /// <summary> /// 下一页 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Button2_Click(object sender, EventArgs e) { //将label3的内容强制转换为字符串类型 this.Label3.Text = Convert.ToString(Convert.ToInt32(this.Label3.Text) + 1); this.dataBindToRepeater(); } }
显示结果:
这样就做好了。
总结:
Repeater控件的5个模板分别是
<ItemTemplate></ItemTemplate>:为数据源中每个数据项都要呈现一次的HTML元素和控件。
<AlternatingItemTemplate> </AlternatingItemTemplate>:为数据源中每个数据项都要呈现一次的HTML元素和控件。
<HeaderTemplate></HeaderTemplate>:包含在列表的开头呈现的文本和控件
<FooterTemplate> </FooterTemplate>:包含在列表的结束呈现的文本和控件
<SeparatorTemplate></SeparatorTemplate>:包含在每项之间呈现的元素。典型示例是一条直线。