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

  • Thread starter Thread starter Moe Sizlak
  • Start date Start date
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>
 
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
 
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
 
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)
 
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?
 
Back
Top