Asp.Net ListView+DataPager 的使用

      ListView控件用于显示数据,它提供了编辑、删除、插入、分页与排序等功能,它的分页功能是通过DataPager控件来实现的。DataPager控件的PagedControlID属性指定ListView控件ID,它可以摆放在两个位置,一是内嵌在ListView控件的<LayoutTemplate>标签内,二是独立于ListView控件

  

1.前台页面代码:

DataKeyNames: 数据库表的主键名

      OnItemEditing:启用编辑

OnItemCanceling:取消功能

OnItemUpdating:更新功能

同时添加相应的Button 并为CommandName 取名: Delete,Cancel,Update , Edit

  <asp:ListView runat="server" ID="listOrder" OnItemDeleting="listOrder_ItemDeleting" DataKeyNames="orderid" OnItemEditing="listOrder_ItemEditing" OnItemCanceling="listOrder_ItemCanceling" OnItemUpdating="listOrder_ItemUpdating">
                                <LayoutTemplate>
                                    <table class="table">
                                        <thead>
                                            <tr>
                                                <th>订单编号</th>
                                                <th>创建日期</th>
                                                <th>订单状态</th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
                                        </tbody>
                                    </table>
                                </LayoutTemplate>
                                <ItemTemplate>
                                    <tr class="active">
                                        <td><%#Eval("orderid") %></td>
                                        <td><%#DataBinder.Eval(Container.DataItem,"createdate","{0:d}") %></td>
                                        <td>
                                            <asp:Label Text='<%#Eval("orderstatus") %>' runat="server" ID="status"/>
                                        </td>
                                        <td>
                                            <asp:Button class="btn btn-danger" runat="server" Text="删除" ID="btnDelete" CommandName="Delete" OnClientClick="return confirm('确认删除?')"/>
                                            <asp:Button class="btn btn-default" Text="修改" runat="server" ID="Edit" CommandName="Edit"/>
                                        </td>
                                    </tr>
                                </ItemTemplate>
                                <EditItemTemplate>
                                    <tr>
                                        <td><%#Eval("orderid") %></td>
                                        <td><%#Eval("createdate") %></td>
                                        <td>
<%--                                            <asp:TextBox runat="server" ID="tbStatus"  Width="100" MaxLength="10" BorderColor="Silver" BorderWidth="1" BorderStyle="Solid" Text='<%#Bind("orderstatus")%>'/>--%>
                                            <asp:DropDownList runat="server" ID="ddStatus">
                                                <asp:ListItem Text="未付款" />
                                                <asp:ListItem Text="已付款" />
                                                <asp:ListItem Text="已发货" />
                                            </asp:DropDownList>
                                        </td>                                        
                                        <td>
                                            <asp:Button Text="更新" runat="server" ID="Update" CommandName="Update" CssClass="btn btn-default"/>
                                            <asp:Button Text="取消" runat="server" ID="Cancel" CommandName="Cancel" CssClass="btn btn-info"/>
                                        </td>

                                    </tr>
                                </EditItemTemplate>
                            </asp:ListView>

listOrder_ItemDeleting:

 //删除操作
        protected void listOrder_ItemDeleting(object sender, ListViewDeleteEventArgs e)
        {
            int keyid = int.Parse(listOrder.DataKeys[e.ItemIndex].Value.ToString());
            string sql = "delete from tb_orderdetails where orderid = "+keyid+"";
            if (SqlHelper.ExecuteSql(sql)>0)
              Response.Write("<script>alert('删除成功');</script>");
            else
              Response.Write("<script>alert('删除失败');</script>");
            string osql = "delete from tb_order where orderid ="+keyid+"";
            SqlHelper.ExecuteSql(osql);
            listItem();
        }

listOrder_ItemEditing

 protected void listOrder_ItemEditing(object sender, ListViewEditEventArgs e)
        {
          
            listOrder.EditIndex = e.NewEditIndex;
            listItem();
            
        }
listOrder_ItemCanceling:

  protected void listOrder_ItemCanceling(object sender, ListViewCancelEventArgs e)
        {
            if (e.CancelMode == ListViewCancelMode.CancelingEdit)
            {
                listOrder.EditIndex = -1;
                listItem();
              
            }
        }

listOrder_ItemUpdating:

 //数据更新操作
        protected void listOrder_ItemUpdating(object sender, ListViewUpdateEventArgs e)
        {
            int keyid = int.Parse(listOrder.DataKeys[e.ItemIndex].Value.ToString());
           // TextBox tbstatus = (TextBox)listOrder.Items[e.ItemIndex].FindControl("tbStatus");
            DropDownList ddList = (DropDownList)listOrder.Items[e.ItemIndex].FindControl("ddStatus");
            if (string.IsNullOrEmpty(ddList.SelectedItem.Text))
                Response.Write("<script>alert('状态不能为空')</script>");
            else {
                string update = "update tb_order set orderstatus ='" + ddList.SelectedItem.Text + "' where orderid = " + keyid + "";
                if (SqlHelper.ExecuteSql(update) > 0)
                {
                    listOrder.EditIndex = -1;
                    listItem();
                }
                else
                    Response.Write("<script>alert('更新失败')</script>");
            }
         
           

        }

datapager prerender (直接把绑定数据方法写在这儿就行,在pageload里可选择性省略)

 protected void DataPagerOrder_PreRender(object sender, EventArgs e)
        {
            listItem();
        }

数据绑定操作

 //数据绑定
        public void bind(string sql) {
                DataSet ds = SqlHelper.Query(sql);
                listOrder.DataSource = ds;
                listOrder.DataBind();      
        }
        public void listItem()
        {
            if (Request.QueryString["id"] == null)
            {
                string sql = "select * from tb_order";
                bind(sql);
            }
            else
            {
                int status = int.Parse(Request.QueryString["id"].ToString());
                switch (status)
                {
                    case 1:
                        string payed = "select * from tb_order where orderstatus='已付款'";
                        bind(payed);
                        break;
                    case 2:
                        string paying = "select * from tb_order where orderstatus ='未付款'";
                        bind(paying);
                        break;
                    case 3:
                        string sended = "select * from tb_order where orderstatus ='已发货'";
                        bind(sended);
                        break;
                    case 4:
                        if (Session["search"] == null||Session["search"].ToString()=="")
                        {
                            string sql = "select * from tb_order";
                            bind(sql);
                        }
                        else {
                            int orderid = int.Parse(Session["search"].ToString());
                            string search = "select * from tb_order where orderid = " + orderid + "";
                            bind(search);
                        }
                        break;
                        
                }
            }
        }





  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
九头鸭.net分页控件DataPage的主要功能: 1、支持通过Url进行分页: DataPage除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户通过在浏览器地址栏中输入相应的地址即可直接进入指定页面,也可以使搜索引擎搜索到所有分页的页面的内容,因此具有用户友好和搜索引擎友好的优点,关于Url分页与PostBack分页方式的差异,请参考Url与PostBack分页方式的对比。 2、支持Url分页方式下的Url重写(UrlRewrite)功能 Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, DataPage支持Url重写技术使您可以自定义分页导航的Url格式,实现Url重写; 3、支持使用用户自定义图片做为导航元素: 您可以使用自定义的图片文件做为分页控件的导航元素,而不仅仅限于显示文字内容。 4、功能强大灵活、使用方便、可定制性强: DataPage分页控件的所有导航元素都可以由用户进行单独控制,支持使用26种分页皮肤样式 5、增强的 Visual Studio 2005/2008设计时支持 增强的设计时支持使控件在设计时更加直观,易于使用,开发快捷方便。 6、兼容IE6.0 及FireFox 1.5 等浏览器 7、丰富而完整的控件文档和示例项目: 控件附带的完整的帮助文档及示例项目能够帮助您快速上手,熟悉DataPage控件的使用,您还可以通过给作者留言以及论坛提问等方式解决控件使用中遇到的问题。 8、DataPage分页效率高效除了默认实例access外如果选择sqlserver存储过程分页将会更高效

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值