Imar,
Thanks for your help. Same app - but page doesn't have a single calander on it : )
Also - I had come across the link you gave - like I said - everything I've looked at should mean I can do this. When I ran below code, put breakpoint and put "Convert.ToInt32(e.commandargument)" in watch, I get runtime error because it's returning ""
Actually - here's the entire page (you can pretty much guess the data layers and business layers - modeled after your app - but I'll include them below)
<%@ Page Language="
VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="activatemembers.aspx.
vb" Inherits="Admin_activatemembers" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="ObjectDataSource1" GridLines="None" Font-Size="Small" DataKeyNames="UserID">
<Columns>
<asp:TemplateField HeaderText="Name">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# ReturnName(Eval("MemberID")) %>'></asp:Label>
</ItemTemplate>
<HeaderStyle Font-Underline="True" ForeColor="#6600CC" />
<ItemStyle CssClass="col" />
</asp:TemplateField>
<asp:TemplateField HeaderText="Work Location">
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# ReturnLocation(Eval("workLocationID")) %>'></asp:Label>
</ItemTemplate>
<HeaderStyle Font-Underline="True" ForeColor="#6600CC" />
<ItemStyle CssClass="col" />
</asp:TemplateField>
<asp:BoundField DataField="phone" HeaderText="Work Phone">
<HeaderStyle Font-Underline="True" ForeColor="#6600CC" />
<ItemStyle CssClass="col" />
</asp:BoundField>
<asp:BoundField DataField="mobPhone" HeaderText="Cell Phone">
<HeaderStyle Font-Underline="True" ForeColor="#6600CC" />
<ItemStyle CssClass="col" />
</asp:BoundField>
<asp:TemplateField HeaderText="Committee">
<ItemTemplate>
<asp:Label ID="Label3" Text='<%# ReturnCommittee(Eval("positionID")) %>' runat="server"></asp:Label>
</ItemTemplate>
<HeaderStyle Font-Underline="True" ForeColor="#6600CC" />
<ItemStyle CssClass="col" />
</asp:TemplateField>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="ActivateButton" runat="server" CausesValidation="false"
CommandName="activate" text='button'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"
SelectMethod="GetList" TypeName="Searing.Sprint.CusotmerAdvocacy.Dal.Memb erDB"></asp:ObjectDataSource>
</asp:Content>
ACTIVATEMEMBERS.ASPX.VB
Imports Searing.Sprint.CustomerAdvocacy.Bll
Imports Searing.Sprint.CusotmerAdvocacy.Dal
Imports Searing.Sprint.CustomerAdvocacy.BO
Partial Class Admin_activatemembers
Inherits System.Web.UI.Page
Public Function ReturnName(ByVal memberID As Integer) As String
Dim fullName As String
Dim myMember As New Member
myMember = MemberManager.GetItem(memberID)
fullName = myMember.FName + " " + myMember.LName
Return fullName
End Function
Public Function ReturnLocation(ByVal wlocationID As Integer) As String
Dim myWorkLocation As New WorkLocation
myWorkLocation = WorkLocationManager.GetItem(wlocationID)
Return myWorkLocation.LocationName
End Function
Public Function ReturnCommittee(ByVal positionID As Integer) As String
Dim myPosition As New Position
myPosition = PositionManager.GetItem(positionID)
Return myPosition.PositionName
End Function
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs ) Handles GridView1.RowCommand
If e.CommandName.ToLower = "activate" Then
Dim myLabel As Label
Dim iRowIndex As Integer
Integer.TryParse(e.CommandArgument.ToString, iRowIndex)
myLabel = CType(GridView1.Rows(iRowIndex).FindControl("Label 1"), Label)
End If
End Sub
End Class
MemberManager.VB
Imports Microsoft.VisualBasic
Imports System
Imports System.Data
Imports System.Data.Common
Imports System.Data.SqlClient
Imports System.ComponentModel
Imports Searing.Sprint.CustomerAdvocacy.BO
Imports Searing.Sprint.CusotmerAdvocacy.Dal
Namespace Searing.Sprint.CustomerAdvocacy.Bll
Public Class MemberManager
Public Shared Function Save(ByVal myMember As Member) As Integer
Return MemberDB.Save(myMember)
End Function
Public Shared Function GetItem(ByVal myMemberID As Integer) As Member
Return MemberDB.GetItem(myMemberID)
End Function
Public Shared Function GetList() As MemberList
Return MemberDB.GetList()
End Function
Public Shared Sub SaveMemberEvent(ByVal memberID As Integer, ByVal eventID As Integer)
MemberDB.SaveMemberEvent(memberID, eventID)
End Sub
Public Shared Function GetMemberWithGuid(ByVal myGuid As Guid) As Member
Return MemberDB.GetMemberWithGuid(myGuid)
End Function
Public Shared Function GetMembersInEventByDate(ByVal myDate As Date) As MemberList
Return MemberDB.GetMembersEnrolledInEventByDate(myDate)
End Function
End Class
End Namespace
MemberDB.vd
Imports Microsoft.VisualBasic
Imports System
Imports System.Data
Imports System.Data.Common
Imports System.Data.SqlClient
Imports Searing.Sprint.CustomerAdvocacy.BO
Namespace Searing.Sprint.CusotmerAdvocacy.Dal
Public Class MemberDB
Public Shared Function GetMembersWithInterest(ByVal interestID As Integer) As MemberList
Dim tempList As MemberList = Nothing
' Using
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberSelectMembersWithInterest", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@interestID", interestID)
myConnection.Open()
' Using
Dim myReader As SqlDataReader = myCommand.ExecuteReader
Try
If myReader.HasRows Then
tempList = New MemberList
While myReader.Read
tempList.Add(FillDataRecord(myReader))
End While
End If
myReader.Close()
Finally
CType(myReader, IDisposable).Dispose()
End Try
Finally
CType(myConnection, IDisposable).Dispose()
End Try
Return tempList
End Function
Public Shared Function GetMembersEnrolledInEventByDate(ByVal myDate As Date) As MemberList
Dim tempList As MemberList = Nothing
' Using
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberSelectListByEventDate", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@myDate", myDate)
myConnection.Open()
' Using
Dim myReader As SqlDataReader = myCommand.ExecuteReader
Try
If myReader.HasRows Then
tempList = New MemberList
While myReader.Read
tempList.Add(FillDataRecord(myReader))
End While
End If
myReader.Close()
Finally
CType(myReader, IDisposable).Dispose()
End Try
Finally
CType(myConnection, IDisposable).Dispose()
End Try
Return tempList
End Function
Public Shared Function GetItem(ByVal memberID As Integer) As Member
Dim myMember As Member = Nothing
' Using
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberSelectSingleItem", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@memberID", memberID)
myConnection.Open()
' Using
Dim myReader As SqlDataReader = myCommand.ExecuteReader
Try
If myReader.Read Then
myMember = FillDataRecord(myReader)
End If
myReader.Close()
Finally
CType(myReader, IDisposable).Dispose()
End Try
myConnection.Close()
Finally
CType(myConnection, IDisposable).Dispose()
End Try
Return myMember
End Function
Public Shared Function GetList() As MemberList
Dim tempList As MemberList = Nothing
' Using
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberSelectList", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myConnection.Open()
' Using
Dim myReader As SqlDataReader = myCommand.ExecuteReader
Try
If myReader.HasRows Then
tempList = New MemberList
While myReader.Read
tempList.Add(FillDataRecord(myReader))
End While
End If
myReader.Close()
Finally
CType(myReader, IDisposable).Dispose()
End Try
Finally
CType(myConnection, IDisposable).Dispose()
End Try
Return tempList
End Function
Public Shared Function GetMemberWithGuid(ByVal myGuid As Guid) As Member
Dim myMember As Member = Nothing
' Using
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocGetMemberWithUserID", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@userID", myGuid)
myConnection.Open()
' Using
Dim myReader As SqlDataReader = myCommand.ExecuteReader
Try
If myReader.Read Then
myMember = FillDataRecord(myReader)
End If
myReader.Close()
Finally
CType(myReader, IDisposable).Dispose()
End Try
myConnection.Close()
Finally
CType(myConnection, IDisposable).Dispose()
End Try
Return myMember
End Function
Private Shared Function FillDataRecord(ByVal myDataRecord As IDataRecord) As Member
Dim myMember As Member = New Member
myMember.MemberID = myDataRecord.GetInt32(myDataRecord.GetOrdinal("mem berID"))
myMember.UserID = myDataRecord.GetGuid(myDataRecord.GetOrdinal("user ID"))
myMember.FName = myDataRecord.GetString(myDataRecord.GetOrdinal("fN ame"))
myMember.LName = myDataRecord.GetString(myDataRecord.GetOrdinal("lN ame"))
myMember.Phone = myDataRecord.GetString(myDataRecord.GetOrdinal("ph one"))
myMember.MobPhone = myDataRecord.GetString(myDataRecord.GetOrdinal("mo bPhone"))
myMember.WorkLocationID = myDataRecord.GetInt32(myDataRecord.GetOrdinal("wor kLocationID"))
myMember.PositionID = myDataRecord.GetInt32(myDataRecord.GetOrdinal("pos itionID"))
Return myMember
End Function
Public Shared Function SaveMemberEvent(ByVal memberID As Integer, ByVal eventID As Integer) As Integer
Dim result As Integer = 0
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberEnrollEvent", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@memberID", memberID)
myCommand.Parameters.AddWithValue("@eventID", eventID)
Dim returnValue As DbParameter
returnValue = myCommand.CreateParameter
returnValue.Direction = ParameterDirection.ReturnValue
myCommand.Parameters.Add(returnValue)
myConnection.Open()
myCommand.ExecuteNonQuery()
result = Convert.ToInt32(returnValue.Value)
myConnection.Close()
Finally
CType(myConnection, IDisposable).Dispose()
End Try
End Function
Public Shared Function Save(ByVal myMember As Member) As Integer
Dim result As Integer = 0
Dim result2 As Integer = 0
' Using
Dim myConnection As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberInsertUpdateSingleItem", myConnection)
myCommand.CommandType = CommandType.StoredProcedure
If myMember.MemberID = -1 Then
myCommand.Parameters.AddWithValue("@memberID", DBNull.Value)
Else
myCommand.Parameters.AddWithValue("@memberID", myMember.MemberID)
End If
myCommand.Parameters.AddWithValue("@userID", myMember.UserID)
myCommand.Parameters.AddWithValue("@fName", myMember.FName)
myCommand.Parameters.AddWithValue("@lName", myMember.LName)
myCommand.Parameters.AddWithValue("@phone", myMember.Phone)
myCommand.Parameters.AddWithValue("@mobPhone", myMember.MobPhone)
myCommand.Parameters.AddWithValue("@workLocationID ", myMember.WorkLocationID)
myCommand.Parameters.AddWithValue("@positionID", myMember.PositionID)
Dim returnValue As DbParameter
returnValue = myCommand.CreateParameter
returnValue.Direction = ParameterDirection.ReturnValue
myCommand.Parameters.Add(returnValue)
myConnection.Open()
myCommand.ExecuteNonQuery()
result = Convert.ToInt32(returnValue.Value)
myConnection.Close()
Finally
CType(myConnection, IDisposable).Dispose()
End Try
For Each myInterest As Interest In myMember.Interests
Dim myConnection2 As SqlConnection = New SqlConnection(AppConfiguration.ConnectionString)
Try
Dim myCommand As SqlCommand = New SqlCommand("sprocMemberInterestInsertUpdateSingleI tem", myConnection2)
myCommand.CommandType = CommandType.StoredProcedure
myCommand.Parameters.AddWithValue("@memberID", result)
myCommand.Parameters.AddWithValue("@interestID", myInterest.InterestID)
Dim returnValue As DbParameter
returnValue = myCommand.CreateParameter
returnValue.Direction = ParameterDirection.ReturnValue
myCommand.Parameters.Add(returnValue)
myConnection2.Open()
myCommand.ExecuteNonQuery()
result2 = Convert.ToInt32(returnValue.Value)
myConnection.Close()
Finally
CType(myConnection, IDisposable).Dispose()
End Try
Next
Return result2
End Function
End Class
End Namespace