kwilliams Posted November 14, 2008 Share Posted November 14, 2008 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:form.aspx.vb 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 dlForm.DataBind() 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 & " " & strLName Else strReqName = strFName & " " & 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 Else strReqDates = strStartDate & " - " & strEndDate End If 'Assign full times Dim strReqTimes As String = strStartTime & " - " & strEndTime 'Assign email address for responders Dim hplMgr As HyperLink = DirectCast(e.Item.FindControl("hplMgr"), HyperLink) hplMgr.Text = strMgrFName & " " & 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 sqlConn.Open() 'Execute query cmd2.ExecuteNonQuery() 'Close connection sqlConn.Close() 'End If End SubEnd Class form.aspx <%@ 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"> <ItemTemplate> <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> <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> <tr class="tablecell3" align="center"> <td> <asp:Label runat="server" id="lblReqName"></asp:Label> </td> <td> Approve?: <asp:RadioButton ID="rbApproveYes" OnCheckedChanged = "RadioButton_CheckedChanged" runat="server" /> <asp:RadioButton ID="rbApproveNo" OnCheckedChanged = "RadioButton_CheckedChanged" runat="server" /> </td> <td> <asp:HyperLink ID="hplMgr" runat="server" /> </td> </tr> <tr class="tablecell1"> <td align="center">Reason</td> <td align="center">Requested Date(s)</td> <td align="center">Requested Time(s)</td> </tr> <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> <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" /> </td> </tr> </table> <br /><br /> </ItemTemplate> </asp:DataList> </form></asp:Content> Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.