01.
using
System;
02.
using
System.Collections.Generic;
03.
using
System.Linq;
04.
using
System.Web;
05.
using
System.Web.UI;
06.
using
System.Web.UI.WebControls;
07.
08.
using
System.Data;
09.
10.
public
partial
class
MyListView : System.Web.UI.Page
11.
{
12.
private
DataTable Dt;
13.
14.
protected
void
Page_Init(
object
sender, EventArgs e)
15.
{
16.
Dt =
new
DataTable();
17.
18.
Dt.Columns.Add(
new
DataColumn(
"index"
, System.Type.GetType(
"System.Int16"
)));
19.
Dt.Columns.Add(
new
DataColumn(
"name"
, System.Type.GetType(
"System.String"
)));
20.
Dt.Columns.Add(
new
DataColumn(
"count"
, System.Type.GetType(
"System.Int16"
)));
21.
}
22.
23.
protected
void
Page_Load(
object
sender, EventArgs e)
24.
{
25.
if
(ViewState[
"DataSource"
] !=
null
)
26.
Dt = (DataTable)ViewState[
"DataSource"
];
27.
28.
ListView1.DataSource = Dt;
29.
ListView1.DataKeyNames =
new
string
[] {
"name"
};
30.
ListView1.ItemDataBound +=
new
EventHandler<ListViewItemEventArgs>(ListView1_ItemDataBound);
31.
ListView1.DataBind();
32.
33.
AddButton.Click +=
new
EventHandler(AddButton_Click);
34.
}
35.
36.
protected
void
ListView1_ItemDataBound(
object
sender, ListViewItemEventArgs e)
37.
{
38.
DataRowView Dr = (DataRowView)e.Item.DataItem;
39.
40.
if
(e.Item.ItemType == ListViewItemType.DataItem)
41.
{
42.
((Label)e.Item.FindControl(
"Label1"
)).Text = Dr[
"index"
].ToString();
43.
((Label)e.Item.FindControl(
"Label2"
)).Text = Dr[
"name"
].ToString();
44.
((Label)e.Item.FindControl(
"Label3"
)).Text = Dr[
"count"
].ToString();
45.
}
46.
}
47.
48.
protected
void
AddButton_Click(
object
sender, EventArgs e)
49.
{
50.
if
(HaveProduct(ProductTextBox.Text))
51.
{
52.
53.
DataRow[] editRow = Dt.Select(
string
.Format(
"name LIKE '{0}'"
, ProductTextBox.Text));
54.
55.
editRow[0][
"count"
] =
int
.Parse(editRow[0][
"count"
].ToString()) + 1;
56.
}
57.
else
58.
{
59.
60.
DataRow Dr = Dt.NewRow();
61.
Dr[
"index"
] = Dt.Rows.Count + 1;
62.
Dr[
"name"
] = ProductTextBox.Text;
63.
Dr[
"count"
] = 1;
64.
65.
Dt.Rows.Add(Dr);
66.
}
67.
68.
ViewState[
"DataSource"
] = Dt;
69.
70.
ListView1.DataSource = Dt;
71.
ListView1.DataBind();
72.
}
73.
74.
private
bool
HaveProduct(
string
ProductName)
75.
{
76.
DataRow[] haveData = Dt.Select(
string
.Format(
"name LIKE '{0}'"
, ProductName));
77.
78.
return
(haveData.Length > 0) ?
true
:
false
;
79.
}
80.
}