您的位置:首页 > 编程语言 > ASP

ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(二)

2014-09-18 11:42 1191 查看
使用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()
时间,以使在进行翻页操作时控件的数据能及时更新到相应页面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: