ASP.NET ListView控件基本操作
1、前台代码
View Code
1 <asp:ListView ID="lvDepartment" runat="server" DataKeyNames="F_DepartmentID" EnableModelValidation="True"
2 InsertItemPosition="LastItem" oniteminserting="lvDepartment_ItemInserting"
3 onitemediting="lvDepartment_ItemEditing"
4 onitemcanceling="lvDepartment_ItemCanceling"
5 onitemdeleting="lvDepartment_ItemDeleting"
6 onitemupdating="lvDepartment_ItemUpdating">
7 <AlternatingItemTemplate>
8 <tr style="">
9 <td>
10 <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" onclientclick="return confirm('确认删除?')"/>
11 <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" />
12 </td>
13 <td>
14 <asp:Label ID="F_DepartmentNameLabel" runat="server"
15 Text='<%# Eval("F_DepartmentName") %>' />
16 </td>
17 <td>
18 <asp:Label ID="F_OrderLabel" runat="server" Text='<%# Eval("F_Order") %>' />
19 </td>
20 </tr>
21 </AlternatingItemTemplate>
22 <EditItemTemplate>
23 <tr style="">
24 <td>
25 <asp:Button ID="UpdateButton" runat="server" CommandName="Update" Text="更新" />
26 <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="取消" />
27 </td>
28 <td>
29 <asp:TextBox ID="F_DepartmentNameTextBox" runat="server" Text='<%# Bind("F_DepartmentName") %>' CssClass="wenben" />
30 </td>
31 <td>
32 <asp:TextBox ID="F_OrderTextBox" runat="server" Text='<%# Bind("F_Order") %>' CssClass="order"
33 onkeypress="if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;" />
34 </td>
35 </tr>
36 </EditItemTemplate>
37 <EmptyDataTemplate>
38 <table runat="server" style="">
39 <tr>
40 <td>未返回数据。</td>
41 </tr>
42 </table>
43 </EmptyDataTemplate>
44 <InsertItemTemplate>
45 <tr style="">
46 <td>
47 <asp:Button ID="InsertButton" runat="server" CommandName="Insert" Text="插入" />
48 <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" Text="清除" />
49 </td>
50 <td>
51 <asp:TextBox ID="F_DepartmentNameTextBox" runat="server" Text='<%# Bind("F_DepartmentName") %>' CssClass="wenben" />
52 </td>
53 <td>
54 <asp:TextBox ID="F_OrderTextBox" runat="server" Text='<%# Bind("F_Order") %>' CssClass="order"
55 onkeypress="if (event.keyCode < 48 || event.keyCode >57) event.returnValue = false;" />
56 </td>
57 </tr>
58 </InsertItemTemplate>
59 <ItemTemplate>
60 <tr style="">
61 <td>
62 <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" onclientclick="return confirm('确认删除?')" />
63 <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" />
64 </td>
65 <td>
66 <asp:Label ID="F_DepartmentNameLabel" runat="server" Text='<%# Eval("F_DepartmentName") %>' />
67 </td>
68 <td>
69 <asp:Label ID="F_OrderLabel" runat="server" Text='<%# Eval("F_Order") %>' />
70 </td>
71 </tr>
72 </ItemTemplate>
73 <LayoutTemplate>
74 <table runat="server">
75 <tr runat="server">
76 <td runat="server">
77 <table ID="itemPlaceholderContainer" runat="server" border="0" style="">
78 <tr runat="server" style="">
79 <td runat="server" align="left"></td>
80 <td runat="server" align="left"><strong>部门名称</strong></td>
81 <td runat="server" align="left"><strong>顺序</strong></td>
82 </tr>
83 <tr ID="itemPlaceholder" runat="server" align="left">
84 </tr>
85 </table>
86 </td>
87 </tr>
88 <tr runat="server">
89 <td runat="server" style="">
90 <asp:DataPager ID="DataPager1" runat="server">
91 <Fields>
92 <asp:NextPreviousPagerField ButtonType="Button" ShowFirstPageButton="True"
93 ShowNextPageButton="False" ShowPreviousPageButton="False" />
94 <asp:NumericPagerField />
95 <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True"
96 ShowNextPageButton="False" ShowPreviousPageButton="False" />
97 </Fields>
98 </asp:DataPager>
99 </td>
100 </tr>
101 </table>
102 </LayoutTemplate>
103 <SelectedItemTemplate>
104 <tr style="">
105 <td>
106 <asp:Button ID="DeleteButton" runat="server" CommandName="Delete" Text="删除" />
107 <asp:Button ID="EditButton" runat="server" CommandName="Edit" Text="编辑" />
108 </td>
109 <td>
110 <asp:Label ID="F_DepartmentNameLabel" runat="server" Text='<%# Eval("F_DepartmentName") %>' />
111 </td>
112 <td>
113 <asp:Label ID="F_OrderLabel" runat="server" Text='<%# Eval("F_Order") %>' />
114 </td>
115 </tr>
116 </SelectedItemTemplate>
117 </asp:ListView>
2、后台代码
View Code
1 public partial class department : Mis.PageBase
2 {
3 protected void Page_Load(object sender, EventArgs e)
4 {
5 if (!IsPostBack&&configcompany!=null)
6 {
7 lvDepartmentBind();
8 }
9 }
10
11 protected void lvDepartment_ItemInserting(object sender, ListViewInsertEventArgs e)
12 {
13 TextBox txDepart = (TextBox)e.Item.FindControl("F_DepartmentNameTextBox");
14 TextBox txOrder = (TextBox)e.Item.FindControl("F_OrderTextBox");
15 if (txDepart.Text == "")
16 {
17 lbMessage.Text = "部门不能为空";
18 }
19 else if (txOrder.Text == "")
20 {
21 lbMessage.Text = "没有填写顺序";
22 }
23 else
24 {
25 bool bl = Mis.GetUserInfo.InsertDepartment(txDepart.Text, Convert.ToInt32(txOrder.Text), configcompany.CompanyID);
26 lvDepartmentBind();
27 HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
28 }
29 }
30
31 protected void lvDepartment_ItemEditing(object sender, ListViewEditEventArgs e)
32 {
33 lvDepartment.EditIndex = e.NewEditIndex;
34 lvDepartmentBind();
35 HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
36 }
37
38 protected void lvDepartment_ItemDeleting(object sender, ListViewDeleteEventArgs e)
39 {
40 int KeyId = Convert.ToInt32(lvDepartment.DataKeys[e.ItemIndex].Value);
41 bool bl = Mis.GetUserInfo.DeleteDepartment(KeyId);
42 lvDepartmentBind();
43 HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
44 }
45
46 protected void lvDepartment_ItemUpdating(object sender, ListViewUpdateEventArgs e)
47 {
48 int KeyId = Convert.ToInt32(lvDepartment.DataKeys[e.ItemIndex].Value);
49 TextBox txDepart =(TextBox)lvDepartment.Items[e.ItemIndex].FindControl("F_DepartmentNameTextBox");
50 TextBox txOrder =(TextBox)lvDepartment.Items[e.ItemIndex].FindControl("F_OrderTextBox");
51 if (txDepart.Text=="")
52 lbMessage.Text ="部门不能为空";
53 else if(txOrder.Text=="")
54 lbMessage.Text="顺序不能为空";
55 else
56 {
57 string depart =Server.HtmlEncode(txDepart.Text);
58 int order = Convert.ToInt32(txOrder.Text);
59 bool bl = Mis.GetUserInfo.UpdateDepartment(depart,order,KeyId);
60 lvDepartment.EditIndex = -1;
61 lvDepartmentBind();
62 HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
63 }
64 }
65
66 protected void lvDepartment_ItemCanceling(object sender, ListViewCancelEventArgs e)
67 {
68 //取消编辑
69 if (e.CancelMode == ListViewCancelMode.CancelingEdit)
70 {
71 //e.Cancel = true;
72 lvDepartment.EditIndex = -1;
73 lvDepartmentBind();
74 HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
75 }
76 else if (e.CancelMode == ListViewCancelMode.CancelingInsert)
77 {
78 lvDepartmentBind();
79 HttpContext.Current.Response.Redirect(HttpContext.Current.Request.Url.AbsolutePath);
80 return;
81 }
82 }
83 protected void lvDepartmentBind()
84 {
85 lvDepartment.DataSource = Mis.GetUserInfo.ReadDepartmentList(configcompany.CompanyID);
86 lvDepartment.DataBind();
87
88 }
89 }
注释:Mis.PageBase:封装了页面登陆判断等一些信息;具体数据的处理,像插入数据库库、数据判断等在其他封装类里实现。
这两段代码只是listview控件的一些基本的操作!