Hello,
I have a webform with a WebDropDown on it configured for checkbox multi-select based. It functions fine when the web form is running (no javascript errors). I am having difficulty accessing the selected items on server-side that were checked in the control.
My aspx page markup is:
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="InfraTest.aspx.vb" Inherits="ReferralConnect.InfraTest" %>
<%@ Register assembly="Infragistics45.Web.v19.1, Version=19.1.20191.115, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb" namespace="Infragistics.Web.UI.ListControls" tagprefix="ig" %>
<!DOCTYPE html>
<html xmlns="">www.w3.org/.../xhtml"><head runat="server"> <title></title></head><body> <script type="text/javascript">
function selectedIndexChanging(sender, eventArgs) { var oldItems = eventArgs.getOldSelection(); var newItems = eventArgs.getNewSelection();
var oldItemsString= ""; var newItemsString= "";
for (i = 0; i < oldItems.length; i++) { if (oldItems[i] != null) oldItemsString += oldItems[i].get_index() + ", "; }
for (i = 0; i < newItems.length; i++) newItemsString += newItems[i].get_index() + ", ";
addLine('<%= GetGlobalResourceObject("ddlServices", "MultiSelectionSelectionChanging") %>' + "(" + sender.get_name() + "): " + '<%= GetGlobalResourceObject("ddlServices", "MultiSelectionOldItems") %>' + " = [ " + oldItemsString + " ] ; " + '<%= GetGlobalResourceObject("ddlServices", "MultiSelectionNewItems") %>' + " = [ " + newItemsString + " ]; "); }
function selectedIndexChanged(sender, eventArgs) { var oldItems = eventArgs.getOldSelection(); var newItems = eventArgs.getNewSelection();
addLine('<%= GetGlobalResourceObject("ddlServices", "MultiSelectionSelectionChanged") %>'+ "(" + sender.get_name() + "): " + '<%= GetGlobalResourceObject("ddlServices", "MultiSelectionOldItems") %>' + " = [ " + oldItemsString + " ] ; " + '<%= GetGlobalResourceObject("ddlServices", "MultiSelectionNewItems") %>' + " = [ " + newItemsString + " ]; "); } </script>
<form id="form1" runat="server"> <div> <%= GetGlobalResourceObject("ddlServices", "MultiSelectionCheckbox") %><br /><br /><ig:WebDropDown runat="server" ID="ddlServices" EnableClosingDropDownOnSelect="False" TextField="ServiceName" Width="400px" DropDownContainerHeight="300px" EnableMultipleSelection="True" Enabled="True" ViewStateMode="Inherit"><ClientEvents SelectionChanged="selectedIndexChanged" SelectionChanging="selectedIndexChanging" /></ig:WebDropDown> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager>
<br /> <asp:Button ID="Button1" runat="server" Text="Button" />
</div> </form></body></html>
My code behind (VB is):
Imports SystemImports System.DataImports System.Data.SqlClientImports System.Data.SqlTypesImports System.IO
Public Class InfraTest Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 'Load Services into Dropdown. Dim SqlConnection1 As New SqlConnection(ConfigurationManager.ConnectionStrings("INSTANCE").ConnectionString) Dim SQLString As String SQLString = "select ServiceName, ServiceID from ProviderServices where ProviderID = " + "'" + "1" + "'" SQLString = SQLString + " order by ServiceName" Dim dtSelected As DataTable
Try Dim daSelected As SqlDataAdapter = New SqlDataAdapter(SQLString, SqlConnection1) dtSelected = New DataTable() daSelected.Fill(dtSelected) ddlServices.DataSource = dtSelected
Catch ex As Exception Return End Try
End Sub
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim S2 As String S2 = ddlServices.SelectedItems(0).Text
Dim test As Integer test = ddlServices.SelectedItems.Count
Dim wdd As Infragistics.Web.UI.ListControls.WebDropDown = DirectCast(Page.FindControl("ddlServices"), Infragistics.Web.UI.ListControls.WebDropDown) Dim items As List(Of Infragistics.Web.UI.ListControls.DropDownItem) = wdd.SelectedItems Dim cnt As Integer = 0 cnt = items.Count Dim test1 As Integer test1 = 0 End SubEnd Class
ddlServices.SelectedItems(0).Text throws an out of range exception even though some values in the dropdown list are checked.
ddlServices.SelectedItems.Count is equla to 0
The findcontrol method doesn't work eithor.
Perhaps I'm misunderstanding something. I want to access the list of checked items so I can do some processing on them on the server side after a button is clicked.
My viewstate is enabled.
Any advice?