Wrox Programmer Forums
Go Back   Wrox Programmer Forums > ASP.NET and ASP > ASP.NET 2.0 > ASP.NET 2.0 Professional
| Search | Today's Posts | Mark Forums Read
ASP.NET 2.0 Professional If you are an experienced ASP.NET programmer, this is the forum for your 2.0 questions. Please also see the Visual Web Developer 2005 forum.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the ASP.NET 2.0 Professional section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
Old November 14th, 2008, 11:54 AM
Points: 1,561, Level: 16
Points: 1,561, Level: 16 Points: 1,561, Level: 16 Points: 1,561, Level: 16
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
Join Date: Jul 2005
Location: , , .
Posts: 317
Thanks: 0
Thanked 0 Times in 0 Posts
Default Trying to pull values from dynamic radiobuttons

I basically need to know how to pull selected radiobutton values from an ItemDataBound event into the RadioButton_CheckedChanged event.

The radiobutton values are dynamically populated from an ItemDataBound event for three test records, which are located within a SQL Server 2000 database table. The two options are "Y" and "N".

Each radiobutton already does have the following properties set: AutoPostBack=True, and OnCheckedChanged = "RadioButton_CheckedChanged". When each of the radiobuttons are changed, the RadioButton_CheckedChanged event does fire. But only static values can get inputted into the DB table. The values from the dynamic radiobuttons don't get passed from the ItemDataBound event to the RadioButton_CheckedChanged event.

I've included my code below. If anyone can let me know what I'm doing wrong, that would be great. Thanks.

Here's my code:
Partial Class test_folder_Formprocedure_Formrequests
    Inherits System.Web.UI.Page

    Private ds As New DataSet()
    Dim sqlConn As SqlConnection
    Dim sqlCmd As SqlCommand
    Dim strConnection As String
    Private cmd1 As SqlDataAdapter = New SqlDataAdapter
    Private cmd2 As New SqlCommand()
    Dim strApproved As String = Nothing
    Dim strRecordID As String = Nothing
    Dim strUsername As String = Nothing
    'Declare radiobuttons
    Dim rbApproveYes As RadioButton = Nothing
    Dim rbApproveNo As RadioButton = Nothing

    Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs) Handles Me.Load
        'Assign connection string
        strConnection = System.Configuration.ConfigurationManager.AppSettings("strConn")
        sqlConn = New SqlConnection(strConnection)

        'Pull username
        Dim iPos
        strUsername = "SERVERNAME\USERNAME"
        iPos = Len(strUsername) - InStr(1, strUsername, "\", 1)
        strUsername = Right(strUsername, iPos)
    End Sub

    'Bind Data to DataList Populating the Dataset 
    Sub BindstrDbRecordID()
        cmd1 = New SqlDataAdapter("spFormRequests", sqlConn)

        'Bind data
        cmd1.Fill(ds, "tblForm")
        dlForm.DataSource = ds
    End Sub

    'The ItemDataBound Event
    Public Sub dlForm_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs)

        Dim drv As DataRowView = CType(e.Item.DataItem, DataRowView)

        If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then

            'Step 1: Assign label values
            strRecordID = drv.Row("RecordID").ToString
            Dim strFName As String = drv.Row("FName").ToString
            Dim strLName As String = drv.Row("LName").ToString
            Dim strOnBehalfOf As String = drv.Row("OnBehalfOf").ToString
            Dim strReason As String = drv.Row("Reason").ToString
            Dim strStartDate As String = drv.Row("StartDate").ToString
            Dim strEndDate As String = drv.Row("EndDate").ToString
            Dim strStartTime As String = drv.Row("StartTime").ToString
            Dim strEndTime As String = drv.Row("EndTime").ToString
            strApproved = drv.Row("Approved").ToString
            Dim strMgrID As String = drv.Row("MgrID").ToString
            Dim strMgrFName As String = drv.Row("MgrFName").ToString
            Dim strMgrLName As String = drv.Row("MgrLName").ToString
            Dim strMgrEmail As String = drv.Row("MgrEmail").ToString

            'Assign requester's full name
            Dim strReqName As String = Nothing
            If strOnBehalfOf Is DBNull.Value Or strOnBehalfOf = "" Then
                'If strOnBehalfOf Is Nothing Then
                strReqName = strFName & "#160;" & strLName
                strReqName = strFName & "#160;" & strLName & " (on behalf of " & strOnBehalfOf & ")"
            End If

            'Assign full date(s)
            Dim strReqDates As String = Nothing
            If strEndDate Is DBNull.Value Or strEndDate = "" Then
                strReqDates = strStartDate
                strReqDates = strStartDate & "#160;-#160;" & strEndDate
            End If

            'Assign full times
            Dim strReqTimes As String = strStartTime & "#160;-#160;" & strEndTime

            'Assign email address for responders
            Dim hplMgr As HyperLink = DirectCast(e.Item.FindControl("hplMgr"), HyperLink)
            hplMgr.Text = strMgrFName & "#160;" & strMgrLName
            hplMgr.NavigateUrl = "mailto:" & strMgrEmail & strRecordID

            rbApproveYes = CType(e.Item.FindControl("rbApproveYes"), RadioButton)
            rbApproveNo = CType(e.Item.FindControl("rbApproveNo"), RadioButton)

            'Assign static radiobutton properties
            rbApproveYes.Text = "Y"
            rbApproveYes.GroupName = "rbApproved"
            rbApproveYes.AutoPostBack = True
            'rbApproveYes.OnCheckedChanged = "rbApproved_CheckedChanged"

            rbApproveNo.Text = "N"
            rbApproveNo.GroupName = "rbApproved"
            rbApproveNo.AutoPostBack = True
            'rbApproveNo.OnCheckedChanged = "rbApproved_CheckedChanged"

            'Approved check: Dynamically populate radiobuttons with "Approved" value, like this:
            If strApproved = "Y" Then
                rbApproveYes.Checked = True
            End If

            If strApproved = "N" Then
                rbApproveNo.Checked = True
            End If

            'Step 3: Assign label properties
            CType(e.Item.FindControl("lblRecordID"), Label).Text = strRecordID
            CType(e.Item.FindControl("lblReqName"), Label).Text = strReqName
            CType(e.Item.FindControl("lblReason"), Label).Text = strReason
            CType(e.Item.FindControl("lblReqDates"), Label).Text = strReqDates
            CType(e.Item.FindControl("lblReqTimes"), Label).Text = strReqTimes

        End If
    End Sub

    Public Sub RadioButton_CheckedChanged(ByVal sender As Object, ByVal e As EventArgs)
        Dim rbApproveYes As RadioButton = DirectCast(sender, RadioButton)
        Dim rbApproveNo As RadioButton = DirectCast(sender, RadioButton)

        'Pull form values from rbApprovedYes and rbApprovedNo
        Dim strApprovedValue As String = Nothing 'live
        If rbApproveYes.Checked Then
            strApprovedValue = "Y"
        ElseIf rbApproveNo.Checked Then
            strApprovedValue = "N"
        End If

        'Assign date variables
        Dim dtCurrDate As DateTime = DateTime.Now 'Assign current date
        Dim strDateTimeISO As String = dtCurrDate.ToString("s") 'ISO format

        'Insert into database
        cmd2 = New SqlCommand("spFormApproval", sqlConn)
        cmd2.CommandType = CommandType.StoredProcedure

        'Assign form paramaters
        cmd2.Parameters.Add("@RecordID", SqlDbType.VarChar, 50).Value = "10" 'strRecordID
        cmd2.Parameters.Add("@Approved", SqlDbType.VarChar, 50).Value = strApprovedValue
        cmd2.Parameters.Add("@MgrID", SqlDbType.VarChar, 50).Value = strUsername
        cmd2.Parameters.Add("@datetime", SqlDbType.VarChar, 50).Value = strDateTimeISO

        'Open connection

        'Execute query

        'Close connection

        'End If
    End Sub
End Class
<%@ Page Language="VB" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" EnableSessionState="true" EnableViewState="true" CodeFile="formrequests.aspx.vb" Inherits="test_folder_formprocedure_formrequests" title="Form Requests" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    Below is a list of stop work requests (starting with the most recent):
    <br />
    <br />
    <form name="FormRequests" runat="server">
        <asp:DataList ID="dlForm" runat="server" OnItemDataBound="dlForm_ItemDataBound" RepeatLayout="Flow">
                <table class="tableborder_black" width="98%" id="Form Request #<%#DataBinder.Eval(Container, "DataItem.RecordID")%>">
                    <tr class="tablecell_black">
                        <th colspan="3">Form Request #<asp:Label runat="server" ID="lblRecordID"></asp:Label></th>
                    <tr class="tablecell1" align="center">
                        <td align="center" width="50%">Requested By</td>
                        <td align="center" width="25%">Status</td>
                        <td align="center" width="25%">Responded By</td>
                    <tr class="tablecell3" align="center">
                            <asp:Label runat="server" id="lblReqName"></asp:Label>
                            <asp:RadioButton ID="rbApproveYes" OnCheckedChanged = "RadioButton_CheckedChanged" runat="server" />
                            <asp:RadioButton ID="rbApproveNo" OnCheckedChanged = "RadioButton_CheckedChanged" runat="server" />
                            <asp:HyperLink ID="hplMgr" runat="server" />
                    <tr class="tablecell1">
                        <td align="center">Reason</td>
                        <td align="center">Requested Date(s)</td>
                        <td align="center">Requested Time(s)</td>
                    <tr class="tablecell3" align="center">
                        <td align="center" valign="top"><asp:Label runat="server" ID="lblReason"></asp:Label></td>
                        <td align="center"><asp:Label runat="server" ID="lblReqDates"></asp:Label></td>
                        <td align="center"><asp:Label runat="server" ID="lblReqTimes"></asp:Label></td>
                    <tr class="tablecell_black">
                        <td colspan="3" align="center">
                            <asp:HiddenField ID="hfRecordID" value='<%#DataBinder.Eval(Container, "DataItem.RecordID")%>' runat="server" />
                            <asp:Button ID="btnPrint" runat="server" Text="Print This Request" />
                <br /><br />

Similar Threads
Thread Thread Starter Forum Replies Last Post
Using Radiobuttons Andrew.Berry ASP.NET 2.0 Professional 6 April 18th, 2008 10:29 AM
Pull data values & assign them to a text control cesemj ASP.NET 2.0 Basics 0 March 12th, 2008 06:54 AM
Dynamic Checkboxes using dynamic Select Values bsheridan Classic ASP Databases 0 March 12th, 2006 10:17 AM
Assigning radiobuttons hydra14 C# 7 June 5th, 2004 12:25 AM

Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.