001.
Imports
System.Linq
002.
Imports
System.Web.Services
003.
Imports
System.Data.SqlClient
004.
005.
Public
Class
WebForm5
006.
Inherits
System.Web.UI.Page
007.
008.
Private
Sub
SetInitialRow()
009.
Dim
dt
As
New
DataTable()
010.
Dim
dr
As
DataRow =
Nothing
011.
dt.Columns.Add(
New
DataColumn(
"RowNumber"
,
GetType
(
String
)))
012.
dt.Columns.Add(
New
DataColumn(
"Column1"
,
GetType
(
String
)))
013.
dt.Columns.Add(
New
DataColumn(
"Column2"
,
GetType
(
String
)))
014.
dt.Columns.Add(
New
DataColumn(
"Column3"
,
GetType
(
String
)))
015.
dr = dt.NewRow()
016.
dr(
"RowNumber"
) = 1
017.
dr(
"Column1"
) =
String
.Empty
018.
dr(
"Column2"
) =
String
.Empty
019.
dr(
"Column3"
) =
String
.Empty
020.
dt.Rows.Add(dr)
021.
ViewState(
"CurrentTable"
) = dt
022.
Gridview1.DataSource = dt
023.
Gridview1.DataBind()
024.
End
Sub
025.
Private
Sub
AddNewRowToGrid()
026.
Dim
rowIndex
As
Integer
= 0
027.
028.
If
ViewState(
"CurrentTable"
) IsNot
Nothing
Then
029.
Dim
dtCurrentTable
As
DataTable =
DirectCast
(ViewState(
"CurrentTable"
), DataTable)
030.
Dim
drCurrentRow
As
DataRow =
Nothing
031.
If
dtCurrentTable.Rows.Count > 0
Then
032.
For
i
As
Integer
= 1
To
dtCurrentTable.Rows.Count
033.
Dim
box1
As
TextBox =
DirectCast
(Gridview1.Rows(rowIndex).Cells(1).FindControl(
"TextBox1"
), TextBox)
034.
Dim
box2
As
TextBox =
DirectCast
(Gridview1.Rows(rowIndex).Cells(2).FindControl(
"TextBox2"
), TextBox)
035.
Dim
box3
As
TextBox =
DirectCast
(Gridview1.Rows(rowIndex).Cells(3).FindControl(
"TextBox3"
), TextBox)
036.
037.
drCurrentRow = dtCurrentTable.NewRow()
038.
drCurrentRow(
"RowNumber"
) = i + 1
039.
040.
dtCurrentTable.Rows(i - 1)(
"Column1"
) = box1.Text
041.
dtCurrentTable.Rows(i - 1)(
"Column2"
) = box2.Text
042.
dtCurrentTable.Rows(i - 1)(
"Column3"
) = box3.Text
043.
044.
rowIndex += 1
045.
Next
046.
dtCurrentTable.Rows.Add(drCurrentRow)
047.
ViewState(
"CurrentTable"
) = dtCurrentTable
048.
049.
Gridview1.DataSource = dtCurrentTable
050.
Gridview1.DataBind()
051.
End
If
052.
Else
053.
Response.Write(
"ViewState is null"
)
054.
End
If
055.
056.
057.
SetPreviousData()
058.
End
Sub
059.
Private
Sub
SetPreviousData()
060.
Dim
rowIndex
As
Integer
= 0
061.
If
ViewState(
"CurrentTable"
) IsNot
Nothing
Then
062.
Dim
dt
As
DataTable =
DirectCast
(ViewState(
"CurrentTable"
), DataTable)
063.
If
dt.Rows.Count > 0
Then
064.
For
i
As
Integer
= 0
To
dt.Rows.Count - 1
065.
Dim
box1
As
TextBox =
DirectCast
(Gridview1.Rows(rowIndex).Cells(1).FindControl(
"TextBox1"
), TextBox)
066.
Dim
box2
As
TextBox =
DirectCast
(Gridview1.Rows(rowIndex).Cells(2).FindControl(
"TextBox2"
), TextBox)
067.
Dim
box3
As
TextBox =
DirectCast
(Gridview1.Rows(rowIndex).Cells(3).FindControl(
"TextBox3"
), TextBox)
068.
069.
box1.Text = dt.Rows(i)(
"Column1"
).ToString()
070.
box2.Text = dt.Rows(i)(
"Column2"
).ToString()
071.
box3.Text = dt.Rows(i)(
"Column3"
).ToString()
072.
073.
rowIndex += 1
074.
Next
075.
End
If
076.
End
If
077.
End
Sub
078.
Protected
Sub
Page_Load(
ByVal
sender
As
Object
,
ByVal
e
As
EventArgs)
079.
If
Not
Page.IsPostBack
Then
080.
SetInitialRow()
081.
End
If
082.
End
Sub
083.
Protected
Sub
ButtonAdd_Click(
ByVal
sender
As
Object
,
ByVal
e
As
EventArgs)
084.
AddNewRowToGrid()
085.
End
Sub
086.
087.
<WebMethod()> _
088.
Public
Shared
Function
GetCustomers(
ByVal
prefix
As
String
)
As
String
()
089.
Dim
customers
As
New
List(Of
String
)()
090.
Using conn
As
New
SqlConnection()
091.
conn.ConnectionString = ConfigurationManager.ConnectionStrings(
"constr"
).ConnectionString
092.
Using cmd
As
New
SqlCommand()
093.
cmd.CommandText =
"select ContactName, CustomerId from Customers where ContactName like @SearchText + '%'"
094.
cmd.Parameters.AddWithValue(
"@SearchText"
, prefix)
095.
cmd.Connection = conn
096.
conn.Open()
097.
Using sdr
As
SqlDataReader = cmd.ExecuteReader()
098.
While
sdr.Read()
099.
customers.Add(
String
.Format(
"{0}-{1}"
, sdr(
"ContactName"
), sdr(
"CustomerId"
)))
100.
End
While
101.
End
Using
102.
conn.Close()
103.
End
Using
104.
End
Using
105.
Return
customers.ToArray()
106.
End
Function
107.
End
Class