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()
时间,以使在进行翻页操作时控件的数据能及时更新到相应页面。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。