Here is a basic Listview that has an ItemCommand and ItemDataBound:
Frontend Code:
<asp:ListView ID="lvAddresses" runat="server" DataKeyNames="AddressID,BillingAddressID,ShippingAddressID">
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<table class="noborder address_book" cellpadding="0" cellspacing="0"><tbody>
<tr>
<td colspan="2">
<%#DataBinder.Eval(Container.DataItem, "FirstName")%> <%#DataBinder.Eval(Container.DataItem, "LastName")%><br>
<%#DataBinder.Eval(Container.DataItem, "Address1")%><br>
<%#DataBinder.Eval(Container.DataItem, "City")%>, <%#DataBinder.Eval(Container.DataItem, "State")%>, <%#DataBinder.Eval(Container.DataItem, "Zip")%><br>
<%#DataBinder.Eval(Container.DataItem, "Phone")%><br>
<span class="caption"><asp:LinkButton ID="lnkMakeDefault_Billing" CommandName="MakeDefault_Billing" runat="server">Click to make Default Billing Address</asp:LinkButton></span>
<span class="caption"><asp:Literal ID="litMakeDefault_Billing" runat="server" Text="Default Billing Address"></asp:Literal></span>
<br />
<span class="caption"><asp:LinkButton ID="lnkMakeDefault_Shipping" CommandName="MakeDefault_Shipping" runat="server">Click to make Default Shipping Address</asp:LinkButton></span>
<span class="caption"><asp:Literal ID="litMakeDefault_Shipping" runat="server" Text="Default Shipping Address"></asp:Literal></span>
</td>
</tr>
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="EDIT" CommandName="EDITAddress"/>
</td>
<td>
<asp:Button ID="btnREMOVE" runat="server" Text="REMOVE" CommandName="REMOVEAddress"/>
</td>
</tr>
</tbody></table>
</ItemTemplate>
</asp:ListView> |
<asp:ListView ID="lvAddresses" runat="server" DataKeyNames="AddressID,BillingAddressID,ShippingAddressID">
<LayoutTemplate>
<asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
</LayoutTemplate>
<ItemTemplate>
<table class="noborder address_book" cellpadding="0" cellspacing="0"><tbody>
<tr>
<td colspan="2">
<%#DataBinder.Eval(Container.DataItem, "FirstName")%> <%#DataBinder.Eval(Container.DataItem, "LastName")%><br>
<%#DataBinder.Eval(Container.DataItem, "Address1")%><br>
<%#DataBinder.Eval(Container.DataItem, "City")%>, <%#DataBinder.Eval(Container.DataItem, "State")%>, <%#DataBinder.Eval(Container.DataItem, "Zip")%><br>
<%#DataBinder.Eval(Container.DataItem, "Phone")%><br>
<span class="caption"><asp:LinkButton ID="lnkMakeDefault_Billing" CommandName="MakeDefault_Billing" runat="server">Click to make Default Billing Address</asp:LinkButton></span>
<span class="caption"><asp:Literal ID="litMakeDefault_Billing" runat="server" Text="Default Billing Address"></asp:Literal></span>
<br />
<span class="caption"><asp:LinkButton ID="lnkMakeDefault_Shipping" CommandName="MakeDefault_Shipping" runat="server">Click to make Default Shipping Address</asp:LinkButton></span>
<span class="caption"><asp:Literal ID="litMakeDefault_Shipping" runat="server" Text="Default Shipping Address"></asp:Literal></span>
</td>
</tr>
<tr>
<td>
<asp:Button ID="Button1" runat="server" Text="EDIT" CommandName="EDITAddress"/>
</td>
<td>
<asp:Button ID="btnREMOVE" runat="server" Text="REMOVE" CommandName="REMOVEAddress"/>
</td>
</tr>
</tbody></table>
</ItemTemplate>
</asp:ListView>
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 |
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