Hi! I've found this source code online, but they use
SQL, DataGrid, and repeater.
Please refer the code and apply the same for datagrid
<%@ Page
Language="
VB" %>
<%@ Import
Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient"
%>
<script runat="server">
Dim strFilter As
String
Dim DBConn As New
SqlConnection("Server=<SERVER>,<PORT>;UID=<USERNAM
E>;PWD=<PASSWORD>;Database=<DATABASE>;")
Dim DBComm As
SqlCommand
Dim DBAdapt As SqlDataAdapter
Protected Sub
Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim
ThisFilter As Object = ViewState("vsFilter")
If Not (ThisFilter Is
Nothing) Then
strFilter =
CStr(ThisFilter)
Else
strFilter = "All"
End
If
If Not Page.IsPostBack
Then
BindData(True)
End If
End
Sub
Sub BindData(ByVal GetFresh As Boolean)
Dim DTable As
DataTable = Nothing
If ViewState("vsSortData") Is Nothing Or GetFresh
Then
DBComm = New SqlCommand("SELECT tblProductName FROM
tblProducts", DBConn)
DBAdapt = New
SqlDataAdapter(DBComm)
Dim DSet As New
DataSet()
Try
DBAdapt.Fill(DSet)
DTable
= DSet.Tables(0)
Catch EXC As
SqlException
Me.lblError.Text =
EXC.Message
Return
Finally
DBConn.Close()
End
Try
ViewState("vsSortData") =
DTable
Else
DTable = CType(ViewState("vsSortData"),
DataTable)
End If
If strFilter = "All"
Then
DTable.DefaultView.RowFilter =
String.Empty
Else
DTable.DefaultView.RowFilter =
"tblProductName LIKE '" & strFilter & "%'"
End
If
Me.dgProducts.DataSource =
DTable.DefaultView
Me.dgProducts.DataBind()
BuildAlphaPager()
End
Sub
Sub BuildAlphaPager()
Dim DTable As
DataTable
If ViewState(("strLetter")) Is Nothing
Then
Dim arrLetters As String() = {"A", "B", "C", "D", "E", "F",
"G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V",
"W", "X", "Y", "Z", "All"}
DTable = New
DataTable()
DTable.Columns.Add(New DataColumn("Letter",
GetType(String)))
Dim i As Integer
For i = 0 To
arrLetters.Length - 1
Dim DRow As DataRow =
DTable.NewRow()
DRow(0) =
arrLetters(i)
DTable.Rows.Add(DRow)
Next
i
ViewState("strLetter") =
DTable
Else
DTable = CType(ViewState("strLetter"),
DataTable)
End If
Me.rptLetters.DataSource =
DTable.DefaultView
Me.rptLetters.DataBind()
End
Sub
Protected Sub rptLetters_ItemDataBound(ByVal sender As Object,
ByVal e As RepeaterItemEventArgs)
If (e.Item.ItemType =
ListItemType.Header) Then
ElseIf (e.Item.ItemType =
ListItemType.Item) Or (e.Item.ItemType = ListItemType.AlternatingItem)
Then
Dim lnkAlpha As LinkButton =
CType(e.Item.FindControl("lnkAlpha"), LinkButton)
lnkAlpha.Text =
DataBinder.Eval(e.Item.DataItem, "Letter")
lnkAlpha.CommandName =
"Filter"
lnkAlpha.CommandArgument =
DataBinder.Eval(e.Item.DataItem, "Letter")
Dim DRView As
DataRowView = CType(e.Item.DataItem, DataRowView)
If
CStr(DRView(0)) = strFilter Then
lnkAlpha.Enabled =
False
End If
ElseIf (e.Item.ItemType =
ListItemType.Footer) Then
End If
End
Sub
#63728;
Protected Sub rptLetters_ItemCommand(ByVal source As
Object, ByVal e As RepeaterCommandEventArgs)
If e.CommandName =
"Filter" Then
strFilter =
CStr(e.CommandArgument)
ViewState("vsFilter") =
strFilter
BindData(False)
End If
End
Sub
</script>
<html>
<head
runat="server">
<title>Untitled
Page</title>
</head>
<body>
<form
runat="server">
<asp:Label ID="lblError" runat="server"
EnableViewState="False" />
<asp:Repeater ID="rptLetters"
runat="server" OnItemDataBound="rptLetters_ItemDataBound"
OnItemCommand="rptLetters_ItemCommand">
<ItemTemplate>
<asp:LinkButton
ID="lnkAlpha" runat="server"
/>
</ItemTemplate>
</asp:Repeater>
<asp:DataGrid
ID="dgProducts" runat="server" Width="100%" CellPadding="3" BackColor="#DEBA84"
BorderWidth="1px" CellSpacing="2" BorderStyle="None"
BorderColor="#DEBA84">
<ItemStyle ForeColor="#8C4510"
BackColor="#FFF7E7" />
<HeaderStyle Font-Bold="True"
ForeColor="White" BackColor="#A55129"
/>
</asp:DataGrid>
</form>
</body>
</html>