returning the selected value of a listbox control inside a user control - please urgent!

M

Moe Sizlak

Hi There,

I am trying to return the value of a listbox control that is included as a
user control, I can return the name of the control but I can't access the
integer value of the selected item, what do I need to do in order to return
the "option value" of the control?

Moe

!--- returned value of the control

_ctl1_lstCategorie


!-- compiled page code

<select name="_ctl1:lstCategorie" size="1"
onchange="__doPostBack('_ctl1$lstCategorie','')" language="javascript"
id="_ctl1_lstCategorie">
<option value="0">-- Choose a Category --</option>
<option value="6">...Control Valves
....</option>
<option value="10">...Dripline
....</option>
</select>



!--- page code
<%@ Control Language="vb" EnableViewState="true" %>

<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>

Public Sub Page_Load(sender as Object, e as EventArgs)

Public ReadOnly Property SelectedCategoriesID As String
Get
return lstCategorie.ClientID
End Get
End Property

If Not Page.IsPostBack Then
BindStates()
LoadCategories()


response.write (lstCategorie.ClientID)

end if
End Sub

Public Sub LoadCategories()
Try
Dim myConnection as New
SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Const strSQL as String = "SELECT CategoryID, '...' + CategoryDesc + '...'
AS CategoryDesc " & _
"FROM tblProductCategories ORDER BY CategoryDesc"
Dim myCommand as New SqlCommand(strSQL, myConnection)
myConnection.Open()
Dim objDR as SqlDataReader
objDR = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
lstCategorie.DataSource = objDR
lstCategorie.DataBind()
lstCategorie.Items.Insert(0, new ListItem("-- Choose a Category --","0"))

Catch ex as InvalidCastException
Status.Text = ex.ToString()

Catch ex As SqlException
Status.Text = "Database error: " & ex.message

Catch ex As Exception
Status.Text = "General error: " & ex.message
End Try

End Sub

!---page code
<table width="100%" border="0" cellspacing="0" cellpadding="5" height="20">

<td height="20" width="11%">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif"
size="1" color="#FFFFFF">Browse
:</font></div>
</td>
<td height="20" width="14%">

<div align="left">
<asp:listbox id="lstCategorie" runat="server" Rows="1"
AutoPostBack="true"
DataTextField="CategoryDesc" DataValueField="CategoryID" />

</div>

</td>
 
M

Mike Smith

list controls have a SelectedText and a SelectedValue property... u can use
both actually

ListName.SelectedText.Value
or
ListName.SelectedValue

SelectedText.Text gives u the selected text on the listbox

--
Regards,
Mike
http://bikesh.europe.webmatrixhosting.net
http://www.planetsourcecode.com (search keyword: phoetus)

Moe Sizlak said:
Hi There,

I am trying to return the value of a listbox control that is included as a
user control, I can return the name of the control but I can't access the
integer value of the selected item, what do I need to do in order to return
the "option value" of the control?

Moe

!--- returned value of the control

_ctl1_lstCategorie


!-- compiled page code

<select name="_ctl1:lstCategorie" size="1"
onchange="__doPostBack('_ctl1$lstCategorie','')" language="javascript"
id="_ctl1_lstCategorie">
<option value="0">-- Choose a Category --</option>
<option value="6">...Control Valves
...</option>
<option value="10">...Dripline
...</option>
</select>



!--- page code
<%@ Control Language="vb" EnableViewState="true" %>

<% @Import Namespace="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>

Public Sub Page_Load(sender as Object, e as EventArgs)

Public ReadOnly Property SelectedCategoriesID As String
Get
return lstCategorie.ClientID
End Get
End Property

If Not Page.IsPostBack Then
BindStates()
LoadCategories()


response.write (lstCategorie.ClientID)

end if
End Sub

Public Sub LoadCategories()
Try
Dim myConnection as New
SqlConnection(ConfigurationSettings.AppSettings("connectionString"))
Const strSQL as String = "SELECT CategoryID, '...' + CategoryDesc + '...'
AS CategoryDesc " & _
"FROM tblProductCategories ORDER BY CategoryDesc"
Dim myCommand as New SqlCommand(strSQL, myConnection)
myConnection.Open()
Dim objDR as SqlDataReader
objDR = myCommand.ExecuteReader(CommandBehavior.CloseConnection)
lstCategorie.DataSource = objDR
lstCategorie.DataBind()
lstCategorie.Items.Insert(0, new ListItem("-- Choose a Category --","0"))

Catch ex as InvalidCastException
Status.Text = ex.ToString()

Catch ex As SqlException
Status.Text = "Database error: " & ex.message

Catch ex As Exception
Status.Text = "General error: " & ex.message
End Try

End Sub

!---page code
<table width="100%" border="0" cellspacing="0" cellpadding="5" height="20">

<td height="20" width="11%">
<div align="right"><font face="Verdana, Arial, Helvetica, sans-serif"
size="1" color="#FFFFFF">Browse
:</font></div>
</td>
<td height="20" width="14%">

<div align="left">
<asp:listbox id="lstCategorie" runat="server" Rows="1"
AutoPostBack="true"
DataTextField="CategoryDesc" DataValueField="CategoryID" />

</div>

</td>
list controls have a SelectedText and a SelectedValue property... u can use
both actually

ListName.SelectedText.Value
or
ListName.SelectedValue

SelectedText.Text gives u the selected text on the listbox
 
M

Moe Sizlak

Hi Mike,

I have tried this and it returns 2 different results:
for
lstCategorie.SelectedText.Value
BC30456: 'SelectedText' is not a member of
'System.Web.UI.WebControls.ListBox'.

for
lstCategorie.SelectedValue
I get nothing at all from the control

Any other ideas?

Moe
 
M

Mike Smith

geez sorry i must have dozed off !
its SelectedItem.Text and SelectedItem.Value
there is no SelectText.. i merged it myself.. hahahahaha.. sorry..

Response.Write(ListBox1.SelectedItem.Value)

Response.Write(ListBox1.SelectedItem.Text)

Response.Write(ListBox1.SelectedValue.ToString)
 
M

Moe Sizlak

Hi Mike,

if I use:
response.write (lstCategorie.SelectedItem.Value)
I get the error:
Object reference not set to an instance of an object.

if I use:
response.write (lstCategorie.SelectedItem.Text)
I get the erorr:
Object reference not set to an instance of an object.

if I use:
response.write (lstCategorie.SelectedValue.ToString)
I get nothing

Any other ideas?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Staff online

Members online

Forum statistics

Threads
473,731
Messages
2,569,432
Members
44,832
Latest member
GlennSmall

Latest Threads

Top