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> |
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 |