J
Jorge Ayala
Well I'm trying to catch and act upon a button event that is placed within
the item template of a repeater control. Yet the code I'm using isn't
working. What I've seen out there to explain how to do this is way
complicated and assumes a familiarity with dot net that I don't have yet.
I'll get it eventually but this is where I'll get it. Here's my code.
First part is the user control and second is the code behind page
Use control
<%@ Control Language="vb" AutoEventWireup="false"
Codebehind="SiteList.ascx.vb" Inherits="GSIComputerServices.SiteList"
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<asp:Repeater id="SiteRepeater" runat="server"
OnItemCommand="SiteRepeater_ItemCommand">
<ItemTemplate>
<tr>
<td>
<asp:Button Text='<%#
CType(Databinder.Eval(Container.DataItem,"SiteName"),String).Trim %>'
Runat="server" Font-Bold=True CommandArgument='<%#
CType(Databinder.Eval(Container.DataItem,"SiteID"),String).Trim()%>'
CommandName='SiteIDButton' Width="100px">
</asp:Button>
</td>
</tr>
</ItemTemplate>
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<SeparatorTemplate>
</SeparatorTemplate>
</asp:Repeater>
code behind
Imports System.Data.SqlClient
Imports System.Data
Imports GSIComputerServices
Public Class SiteList
Inherits System.Web.UI.UserControl
Dim useparent As Master
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents SiteRepeater As System.Web.UI.WebControls.Repeater
Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
'NOTE: The following placeholder declaration is required by the Web Form
Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim sql As String
Dim db As SqlConnection
Dim comm As SqlCommand
Dim dread As SqlDataReader
sql = "Select * From _Site where MasterID = " &
CType(Session.Contents("MasterID"), Integer) & ""
db = New SqlConnection("")
db.Open()
comm = New SqlCommand(sql, db)
dread = comm.ExecuteReader
Me.SiteRepeater.DataSource = dread
Me.SiteRepeater.DataBind()
db.Close()
'Put user code to initialize the page here
End Sub
Public Sub ChooseSite(ByVal siteID As String)
Me.useparent.ChooseSite(siteID)
End Sub
Public Property componentParent() As Master
Get
Return Me.useparent
End Get
Set(ByVal Value As Master)
Me.useparent = Value
End Set
End Property
Public Sub SiteRepeater_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles
SiteRepeater.ItemCommand
'ChooseSite("all")
ChooseSite(CType(e.CommandArgument(), String))
End Sub
End Class
the item template of a repeater control. Yet the code I'm using isn't
working. What I've seen out there to explain how to do this is way
complicated and assumes a familiarity with dot net that I don't have yet.
I'll get it eventually but this is where I'll get it. Here's my code.
First part is the user control and second is the code behind page
Use control
<%@ Control Language="vb" AutoEventWireup="false"
Codebehind="SiteList.ascx.vb" Inherits="GSIComputerServices.SiteList"
TargetSchema="http://schemas.microsoft.com/intellisense/ie5" %>
<asp:Repeater id="SiteRepeater" runat="server"
OnItemCommand="SiteRepeater_ItemCommand">
<ItemTemplate>
<tr>
<td>
<asp:Button Text='<%#
CType(Databinder.Eval(Container.DataItem,"SiteName"),String).Trim %>'
Runat="server" Font-Bold=True CommandArgument='<%#
CType(Databinder.Eval(Container.DataItem,"SiteID"),String).Trim()%>'
CommandName='SiteIDButton' Width="100px">
</asp:Button>
</td>
</tr>
</ItemTemplate>
<HeaderTemplate>
<table border="0" cellpadding="0" cellspacing="0">
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
<SeparatorTemplate>
</SeparatorTemplate>
</asp:Repeater>
code behind
Imports System.Data.SqlClient
Imports System.Data
Imports GSIComputerServices
Public Class SiteList
Inherits System.Web.UI.UserControl
Dim useparent As Master
#Region " Web Form Designer Generated Code "
'This call is required by the Web Form Designer.
<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
End Sub
Protected WithEvents SiteRepeater As System.Web.UI.WebControls.Repeater
Protected WithEvents LinkButton1 As System.Web.UI.WebControls.LinkButton
'NOTE: The following placeholder declaration is required by the Web Form
Designer.
'Do not delete or move it.
Private designerPlaceholderDeclaration As System.Object
Private Sub Page_Init(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Init
'CODEGEN: This method call is required by the Web Form Designer
'Do not modify it using the code editor.
InitializeComponent()
End Sub
#End Region
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
Dim sql As String
Dim db As SqlConnection
Dim comm As SqlCommand
Dim dread As SqlDataReader
sql = "Select * From _Site where MasterID = " &
CType(Session.Contents("MasterID"), Integer) & ""
db = New SqlConnection("")
db.Open()
comm = New SqlCommand(sql, db)
dread = comm.ExecuteReader
Me.SiteRepeater.DataSource = dread
Me.SiteRepeater.DataBind()
db.Close()
'Put user code to initialize the page here
End Sub
Public Sub ChooseSite(ByVal siteID As String)
Me.useparent.ChooseSite(siteID)
End Sub
Public Property componentParent() As Master
Get
Return Me.useparent
End Get
Set(ByVal Value As Master)
Me.useparent = Value
End Set
End Property
Public Sub SiteRepeater_ItemCommand(ByVal source As Object, ByVal e As
System.Web.UI.WebControls.RepeaterCommandEventArgs) Handles
SiteRepeater.ItemCommand
'ChooseSite("all")
ChooseSite(CType(e.CommandArgument(), String))
End Sub
End Class