Home All Groups Group Topic Archive Search About

dropdownlist, textbox in datagrid dropdownlist_selectedindexchange event

Author
3 Sep 2007 5:19 PM
CindyH
Hi
I'm using vs.net 2003.
I have a dropdownlist inside a datagrid.
I would like to be able to select a value from the dropdownlist and then
have a textbox which is also inside the datagrid filled with that value.

I'm calling OnSelectedIndexChanged="ddlGridMonth_SelectedIndexChanged" event
when an item from the dropdownlist is selected

I'm not sure of the code I should be using for this event.
Right now I'm trying something like this:


Dim ddl As DropDownList = CType(sender, DropDownList)

Dim dg As DataGrid = Me.FindControl("dgMonthlyReports")

' not getting anything in this textbox (nothing)

Dim txt As TextBox = CType(dg.FindControl("ReportMonth"), TextBox)

' getting value from dropdownlist

Dim ddlValue As Integer = ddl.SelectedItem.Value

' not getting value here because it doesn't seem to know about the textbox

Dim TextValue As String = txt.Text

If ddlValue <> 0 Then

txt.Text = ddlValue

End If


I'm getting the value of the dropdownlist, but not the textbox and then I
need to see if the dropdownlist value is something other then 0 and if so
write the value to the textbox.

Thanks,

CindyH

Author
13 Sep 2007 5:57 PM
Teemu Keiski
Hi,

you probably mean something like this

Dim ddl As DropDownList = CType(sender, DropDownList)

'NOTE THIS LINE
Dim gridItem As DataGridItem = CType(ddl.NamingContainer, DataGridItem)

Dim txt As TextBox = CType(gridItem.FindControl("ReportMonth"), TextBox)
Dim ddlValue As Integer = ddl.SelectedItem.Value
Dim TextValue As String = txt.Text



Point is NamingContainer of DroPDownList returns the DataGridItem which
represents the row the DDL is on. So running FindControl to this, will get
you controls on the same row

I've exlained this in a blog post:

Understanding the naming container hierarchy of ASP.NET databound controls
http://aspadvice.com/blogs/joteke/archive/2007/02/25/Understanding-the-naming-container-hierarchy-of-ASP.NET-databound-controls.aspx

-
Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice.com/joteke
http://teemukeiski.net



Show quote
>
> Dim dg As DataGrid = Me.FindControl("dgMonthlyReports")
>
> ' not getting anything in this textbox (nothing)
>
> Dim txt As TextBox = CType(dg.FindControl("ReportMonth"), TextBox)
>
> ' getting value from dropdownlist
>
> Dim ddlValue As Integer = ddl.SelectedItem.Value
>
> ' not getting value here because it doesn't seem to know about the textbox
>
> Dim TextValue As String = txt.Text


"CindyH" <chensc***@new.rr.com> wrote in message
news:%23nU6e6k7HHA.4304@TK2MSFTNGP03.phx.gbl...
> Hi
> I'm using vs.net 2003.
> I have a dropdownlist inside a datagrid.
> I would like to be able to select a value from the dropdownlist and then
> have a textbox which is also inside the datagrid filled with that value.
>
> I'm calling OnSelectedIndexChanged="ddlGridMonth_SelectedIndexChanged"
> event
> when an item from the dropdownlist is selected
>
> I'm not sure of the code I should be using for this event.
> Right now I'm trying something like this:
>
>
> Dim ddl As DropDownList = CType(sender, DropDownList)
>
> Dim dg As DataGrid = Me.FindControl("dgMonthlyReports")
>
> ' not getting anything in this textbox (nothing)
>
> Dim txt As TextBox = CType(dg.FindControl("ReportMonth"), TextBox)
>
> ' getting value from dropdownlist
>
> Dim ddlValue As Integer = ddl.SelectedItem.Value
>
> ' not getting value here because it doesn't seem to know about the textbox
>
> Dim TextValue As String = txt.Text
>
> If ddlValue <> 0 Then
>
> txt.Text = ddlValue
>
> End If
>
>
> I'm getting the value of the dropdownlist, but not the textbox and then I
> need to see if the dropdownlist value is something other then 0 and if so
> write the value to the textbox.
>
> Thanks,
>
> CindyH
>
>

AddThis Social Bookmark Button