龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp.net编程 >

ASP.NET中DataList控件模板属性说明及各功能实现效果介绍(2)

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
3、使用方法 首先,创建一个页面,把DataList控件拖到表单中。 asp:Label ID="TitleLabel" runat="server" Text=%# Eval("Title") % / 4、实现DataList控件的编辑功能 DataList控件

3、使用方法

首先,创建一个页面,把DataList控件拖到表单中。
<asp:Label ID="TitleLabel" runat="server" Text='<%# Eval("Title") %>' />

4、实现DataList控件的编辑功能

DataList控件没有内置编辑等功能,如果要实现编辑,我们需要自己编写代码控制,为了实现编辑功能,我们要在页面中使用编辑模板。
首先,设置编辑按钮的属性,可以设置“编辑”按钮的“CommandName”属性设置为“edit”,然后就可以DataList控件的EditCommand事件。双击EditCommand事件,在生成的事件代码中编写代码如下:
protected void DataList1_EditCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = e.Item.ItemIndex;
        DataBind();
    }
修改和取消的思路与编辑按钮的思路完全一致:分别为修改和取消的按钮对应的CommandName属性设置为:update和Cancel,然后编写UpdateCommand事件和CancelCommand事件的对应的事件代码。
取消的操作代码:
protected void DataList1_CancelCommand(object source, DataListCommandEventArgs e)
    {
        DataList1.EditItemIndex = -1;
        DataBind();
    }
更新的操作代码:
protected void DataList1_UpdateCommand(object source, DataListCommandEventArgs e)
    {
        //从选中记录中获取各更新参数的值
        SqlDataSource1.UpdateParameters["ID"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox1")).Text;
        SqlDataSource1.UpdateParameters["Title"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox2")).Text;
        SqlDataSource1.UpdateParameters["Price"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox3")).Text;
        SqlDataSource1.UpdateParameters["Images"].DefaultValue = ((TextBox)e.Item.FindControl("TextBox4")).Text;
        //提交更新
        SqlDataSource1.Update();
        //设置到浏览状态
        DataList1.EditItemIndex = -1;
        //重新绑定
        DataBind();
    }

5、DataList控件的分页
DataList控件没有内置分页和排序的功能,需要编写代码手工实现。
分页一般需要以下条件:
(1)、每页显示记录数(PageSize)
(2)、总记录数(Count)
(3)、总页数
(4)、当前页
基于PagedDataSource类的分页,常见属性:
CurrentPageIndex当前页;
PageCount总页数;
Count总记录数;
PageSize每页记录数;
DataSource 数据源;
AllowPaging控件是否实现自动分页功能。
只要将数据源和当前页数赋值给PagedDataSource类的实例对象,其它属性(总记录数和总页数)可以自动计算得出。
编写绑定的方法如下:
private void Databind()
    {
        PagedDataSource pds = new PagedDataSource();
        pds.DataSource = Product.GetProducts();  //获得记录集的方法
        pds.AllowPaging = true;  //允许分页
        pds.PageSize = 4;      //页大小
        pds.CurrentPageIndex = Page;  //当前页
        Label1.Text = "第" + (pds.CurrentPageIndex + 1).ToString() + "页共" + pds.PageCount.ToString() + "页";
        DataList1.DataSource = pds;
        DataList1.DataBind();
    }

 


精彩图集

赞助商链接