zoukankan      html  css  js  c++  java
  • ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)

    使用ListView控件进行修改,删除与添加操作
    1.页面代码:

    <asp:ListView ID="lv2" runat="server"
          onpagepropertieschanging="lv_PagePropertiesChanging2"
          onitemcanceling="lv2_ItemCanceling" onitemediting="lv2_ItemEditing"
          onitemupdating="lv2_ItemUpdating"
          onitemdeleting="lv2_ItemDeleting" DataKeyNames="id">
        <EditItemTemplate>
           <div class="lvData">
              <div class="id"><%#eval_r("id")%></div>
              <div class="proId"><%#eval_r("provinceID")%></div>
              <div class="proName">
                  <asp:TextBox ID="txt" runat="server" Text='<%#eval_r("province")%>'></asp:TextBox></div>
                  <div class="edit">
                     <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Update" >更新</asp:LinkButton>
                     <asp:LinkButton ID="LinkButton1" runat="server" CommandName="Cancel" >取消</asp:LinkButton>
                  </div>
              </div>
        </EditItemTemplate>
           <ItemTemplate>
              <div class="lvData">
                 <div class="id"><%#eval_r("id")%></div>
                 <div class="proId"><%#eval_r("provinceID")%></div>
                 <div class="proName"><%#eval_r("province")%></div>
                 <div class="edit">
                     <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" >编辑</asp:LinkButton>
                     <asp:LinkButton ID="LinkButton2" runat="server" CommandName="Delete" >删除</asp:LinkButton>
                 </div>
             </div>
         </ItemTemplate>
         <AlternatingItemTemplate>
            <div class="lvData alterStyle">
                <div class="id"><%#eval_r("id")%></div>
                <div class="proId"><%#eval_r("provinceID")%></div>
                <div class="proName"><%#eval_r("province")%></div>
                <div class="edit">
                    <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" >编辑</asp:LinkButton>
                    <asp:LinkButton ID="LinkButton3" runat="server" CommandName="Delete" >删除</asp:LinkButton>
                </div>
            </div>
        </AlternatingItemTemplate>  
    </asp:ListView>
            <asp:DataPager ID="DataPager2" PagedControlID="lv2" runat="server">
            <Fields>
                <asp:NextPreviousPagerField ShowFirstPageButton="True" 
                    ShowLastPageButton="True" ShowNextPageButton="True"
                    ShowPreviousPageButton="True" />
            </Fields>
        </asp:DataPager>

    2.后置代码:

    public partial class index : System.Web.UI.Page
    {
        DBHelper db = new DBHelper();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack )
            {
                Lv2Bind();//更新值
            }   
        }
       
        protected void lv_PagePropertiesChanging2(object sender, PagePropertiesChangingEventArgs e)
        {
            this.DataPager2.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
            Lv2Bind();
        }
       
        protected void lv2_ItemEditing(object sender, ListViewEditEventArgs e)
        {
            lv2.EditIndex = e.NewEditIndex;
            Lv2Bind();
        }
       
        protected void lv2_ItemUpdating(object sender, ListViewUpdateEventArgs e)
        {
            int index = e.ItemIndex;
            TextBox txtbox = lv2.Items[index].FindControl("txt") as TextBox;
            string proName = txtbox.Text;
            string id=lv2.DataKeys[index].Value.ToString();
            string sql = string.Format("UPDATE [Public].[dbo].[Province] SET [province] =@province WHERE id=@id");
            SqlParameter[] paras = {
                         new SqlParameter("@province",proName),
                         new SqlParameter("@id",id)
                        };
            if (db.ExecuteNonQuery(sql, paras) > 0)
            {
                this.divAlert.Attributes.CssStyle.Add("display", "block");
                Lv2Bind();
            }
            else
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "<script>更新失败</script>");
                Lv2Bind();
            }
        }
       
        protected void lv2_ItemCanceling(object sender, ListViewCancelEventArgs e)
        {
            lv2.EditIndex = -1;
            Lv2Bind();
        }
       
        protected void lv2_ItemDeleting(object sender, ListViewDeleteEventArgs e)
        {
        }
       
        private void Lv2Bind()
        {
            this.lv2.DataSource = GetDT();
            this.lv2.DataBind();
        }
    }

    注意要点:
    1.在Page_Load事件中,要把控件绑定数据的方法放在ispostback方法里面,以避免在页面加载的时候首
    都要加载原来的数据,修改的数据无法更新的情况。
    2.使用DataPager控件给ListView控件分页时,需要编写ListView控件的lv_PagePropertiesChanging()
    时间,以使在进行翻页操作时控件的数据能及时更新到相应页面。

  • 相关阅读:
    无法往u盘里边复制超过4G的单个文件解决方法
    vue 自定义属性判断点击每个item 显示隐藏
    前端小组分享会之异步回调函数中的上下文
    git 的一些命令
    ES学习之promise
    mac找到占用端口号的进程ID
    meta link
    webpack学习笔记--安装
    css样式之 direction
    日常积累之JSON.stringify和JSON.parse substr
  • 原文地址:https://www.cnblogs.com/xyyt/p/3978903.html
Copyright © 2011-2022 走看看