
Here is a basic Listview that has an ItemCommand and ItemDataBound:
Frontend Code:
<%#DataBinder.Eval(Container.DataItem, "FirstName")%> <%#DataBinder.Eval(Container.DataItem, "LastName")%>
<%#DataBinder.Eval(Container.DataItem, "Address1")%>
<%#DataBinder.Eval(Container.DataItem, "City")%>, <%#DataBinder.Eval(Container.DataItem, "State")%>, <%#DataBinder.Eval(Container.DataItem, "Zip")%>
<%#DataBinder.Eval(Container.DataItem, "Phone")%>
Click to make Default Billing Address
Click to make Default Shipping Address
Backend Code:
Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender
FindIt()
End Sub
Private Sub FindIt()
lblAddresses.Text = ""
Dim sqlDataConnection As System.Data.SqlClient.SqlConnection = CDataAccess.OpenDatabase
Dim conStr As String = sqlDataConnection.ConnectionString
sqlDataConnection.Close()
Dim selectCommand As String = "SELECT Address.*, Customer.BillingAddressID, Customer.ShippingAddressID"
selectCommand &= " FROM Address INNER JOIN Customer ON Address.CustomerID = Customer.CustomerID"
selectCommand &= " WHERE Address.CustomerID = @CustomerID AND Address.Deleted = 0"
Dim sds As New SqlDataSource()
sds.ConnectionString = conStr
sds.SelectParameters.Clear()
sds.SelectParameters.Add("CustomerID", 12345)
sds.SelectCommand = selectCommand
lvAddresses.DataSource = sds
lvAddresses.DataBind()
End Sub
Protected Sub lvAddresses_ItemCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewCommandEventArgs) Handles lvAddresses.ItemCommand
Dim dataItem As ListViewDataItem = e.Item
Dim currentDataKey As DataKey = lvAddresses.DataKeys(dataItem.DataItemIndex)
Dim AddressID As Integer = currentDataKey("AddressID")
Dim BillingAddressID As Integer = currentDataKey("BillingAddressID")
Dim ShippingAddressID As Integer = currentDataKey("ShippingAddressID")
'MakeDefault_Billing
'MakeDefault_Shipping
'EDITAddress
'REMOVEAddress
If String.Equals(e.CommandName, "MakeDefault_Billing") Then
MakeDefault(AddressID, True)
ElseIf String.Equals(e.CommandName, "MakeDefault_Shipping") Then
MakeDefault(AddressID, False)
ElseIf String.Equals(e.CommandName, "EDITAddress") Then
EditAddress(AddressID)
ElseIf String.Equals(e.CommandName, "REMOVEAddress") Then
RemoveAddress(AddressID)
End If
End Sub
Protected Sub lvAddresses_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles lvAddresses.ItemDataBound
Dim dataItem As ListViewDataItem = e.Item
If e.Item.ItemType = ListViewItemType.DataItem Then
Dim currentDataKey As DataKey = lvAddresses.DataKeys(dataItem.DataItemIndex)
Dim AddressID As Integer = currentDataKey("AddressID")
Dim BillingAddressID As Integer = currentDataKey("BillingAddressID")
Dim ShippingAddressID As Integer = currentDataKey("ShippingAddressID")
lit = e.Item.FindControl("litMakeDefault_Billing")
Dim lit2 As Literal = e.Item.FindControl("litMakeDefault_Shipping")
lnk = e.Item.FindControl("lnkMakeDefault_Billing")
Dim lnk2 As LinkButton = e.Item.FindControl("lnkMakeDefault_Shipping")
lit.Visible = Not lnk.Visible
End If
End Sub