Datagrid DropdownList in edit mode???

Discussion in 'ASP .Net' started by =?Utf-8?B?VGltOjouLg==?=, Dec 22, 2004.

  1. Can someone tell me how I get the correct selected office in my drop down
    list when I enter edit mode. At the moment it just defaults to the office at
    the top of the drop down list rather than picking the office that has
    actually been selected previously!

    I hope this is clear...

    Here is my code...

    Thanks

    ''''''''''''''''''''''Problem - not reading the correct office when in
    edit mode
    Function GetSelectedIndex(ByVal PageID As String) As Integer

    Dim Myconn As New
    SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    Dim cmd As New SqlCommand("SelectOffice", Myconn)
    cmd.CommandType = CommandType.StoredProcedure

    Myconn.Open()

    Dim myReader As SqlDataReader = cmd.ExecuteReader()

    If myReader.HasRows Then
    Do While myReader.Read()
    Console.WriteLine(vbTab & "{0}" & vbTab & "{1}",
    myReader.GetInt32(0), myReader.GetString(1))
    Loop
    Else
    Console.WriteLine("No rows returned.")
    End If



    myReader.Close()

    Myconn.Close()
    End Function

    Sub populateDDL_ItemDataBound(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridItemEventArgs)

    Dim pageID = CInt(CType(e.Item.FindControl("pageID"), TextBox).Text)

    'Construct the Database Connection
    Dim Myconn As New
    SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    Dim cmd As New SqlCommand("SelectOffice", Myconn)

    If e.Item.ItemType = ListItemType.EditItem Then

    cmd.CommandType = CommandType.StoredProcedure

    Myconn.Open()

    Dim add_Office As DropDownList

    'Populates Office DropDownList with office names
    add_Office = CType(e.Item.FindControl("DDLeditOffice"),
    DropDownList)
    add_Office.DataSource =
    cmd.ExecuteReader(CommandBehavior.CloseConnection)
    add_Office.DataTextField = "offName"
    add_Office.DataValueField = "officeID"
    add_Office.DataBind()
    add_Office.SelectedIndex = GetSelectedIndex(pageID)
    Myconn.Close()
    Else

    If e.Item.ItemType = ListItemType.Footer Then

    cmd.CommandType = CommandType.StoredProcedure

    Myconn.Open()

    Dim add_Office As DropDownList

    'Populates Office DropDownList with office names
    add_Office = CType(e.Item.FindControl("DDLaddOffice"),
    DropDownList)
    add_Office.DataSource =
    cmd.ExecuteReader(CommandBehavior.CloseConnection)
    add_Office.DataTextField = "offName"
    add_Office.DataValueField = "officeID"
    add_Office.DataBind()
    add_Office.Items.Insert(0, "Select One")
    add_Office.Items.FindByText("Select One").Value = 0 'insert
    don't create a value, but we need a value during defaults
    add_Office.SelectedIndex = 0
    Myconn.Close()
    End If
    End If
    End Sub
     
    =?Utf-8?B?VGltOjouLg==?=, Dec 22, 2004
    #1
    1. Advertising

  2. Hi Tim,

    Don't have time to test your code, but just in case.... this issue is often
    caused by incorrectly rebinding to the data on postback. Make sure you are
    wrapping the function in If not ispostback

    "Tim::.." <myatix_at_hotmail.com> wrote in message
    news:...
    > Can someone tell me how I get the correct selected office in my drop down
    > list when I enter edit mode. At the moment it just defaults to the office
    > at
    > the top of the drop down list rather than picking the office that has
    > actually been selected previously!
    >
    > I hope this is clear...
    >
    > Here is my code...
    >
    > Thanks
    >
    > ''''''''''''''''''''''Problem - not reading the correct office when in
    > edit mode
    > Function GetSelectedIndex(ByVal PageID As String) As Integer
    >
    > Dim Myconn As New
    > SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    > Dim cmd As New SqlCommand("SelectOffice", Myconn)
    > cmd.CommandType = CommandType.StoredProcedure
    >
    > Myconn.Open()
    >
    > Dim myReader As SqlDataReader = cmd.ExecuteReader()
    >
    > If myReader.HasRows Then
    > Do While myReader.Read()
    > Console.WriteLine(vbTab & "{0}" & vbTab & "{1}",
    > myReader.GetInt32(0), myReader.GetString(1))
    > Loop
    > Else
    > Console.WriteLine("No rows returned.")
    > End If
    >
    >
    >
    > myReader.Close()
    >
    > Myconn.Close()
    > End Function
    >
    > Sub populateDDL_ItemDataBound(ByVal sender As Object, ByVal e As
    > System.Web.UI.WebControls.DataGridItemEventArgs)
    >
    > Dim pageID = CInt(CType(e.Item.FindControl("pageID"),
    > TextBox).Text)
    >
    > 'Construct the Database Connection
    > Dim Myconn As New
    > SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    > Dim cmd As New SqlCommand("SelectOffice", Myconn)
    >
    > If e.Item.ItemType = ListItemType.EditItem Then
    >
    > cmd.CommandType = CommandType.StoredProcedure
    >
    > Myconn.Open()
    >
    > Dim add_Office As DropDownList
    >
    > 'Populates Office DropDownList with office names
    > add_Office = CType(e.Item.FindControl("DDLeditOffice"),
    > DropDownList)
    > add_Office.DataSource =
    > cmd.ExecuteReader(CommandBehavior.CloseConnection)
    > add_Office.DataTextField = "offName"
    > add_Office.DataValueField = "officeID"
    > add_Office.DataBind()
    > add_Office.SelectedIndex = GetSelectedIndex(pageID)
    > Myconn.Close()
    > Else
    >
    > If e.Item.ItemType = ListItemType.Footer Then
    >
    > cmd.CommandType = CommandType.StoredProcedure
    >
    > Myconn.Open()
    >
    > Dim add_Office As DropDownList
    >
    > 'Populates Office DropDownList with office names
    > add_Office = CType(e.Item.FindControl("DDLaddOffice"),
    > DropDownList)
    > add_Office.DataSource =
    > cmd.ExecuteReader(CommandBehavior.CloseConnection)
    > add_Office.DataTextField = "offName"
    > add_Office.DataValueField = "officeID"
    > add_Office.DataBind()
    > add_Office.Items.Insert(0, "Select One")
    > add_Office.Items.FindByText("Select One").Value = 0 'insert
    > don't create a value, but we need a value during defaults
    > add_Office.SelectedIndex = 0
    > Myconn.Close()
    > End If
    > End If
    > End Sub
     
    Ken Cox [Microsoft MVP], Dec 22, 2004
    #2
    1. Advertising

  3. Hi Ken thanks for the response but I don't think this is the problem!

    I would appritiate any other suggestions!

    Thanks

    "Ken Cox [Microsoft MVP]" wrote:

    > Hi Tim,
    >
    > Don't have time to test your code, but just in case.... this issue is often
    > caused by incorrectly rebinding to the data on postback. Make sure you are
    > wrapping the function in If not ispostback
    >
    > "Tim::.." <myatix_at_hotmail.com> wrote in message
    > news:...
    > > Can someone tell me how I get the correct selected office in my drop down
    > > list when I enter edit mode. At the moment it just defaults to the office
    > > at
    > > the top of the drop down list rather than picking the office that has
    > > actually been selected previously!
    > >
    > > I hope this is clear...
    > >
    > > Here is my code...
    > >
    > > Thanks
    > >
    > > ''''''''''''''''''''''Problem - not reading the correct office when in
    > > edit mode
    > > Function GetSelectedIndex(ByVal PageID As String) As Integer
    > >
    > > Dim Myconn As New
    > > SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    > > Dim cmd As New SqlCommand("SelectOffice", Myconn)
    > > cmd.CommandType = CommandType.StoredProcedure
    > >
    > > Myconn.Open()
    > >
    > > Dim myReader As SqlDataReader = cmd.ExecuteReader()
    > >
    > > If myReader.HasRows Then
    > > Do While myReader.Read()
    > > Console.WriteLine(vbTab & "{0}" & vbTab & "{1}",
    > > myReader.GetInt32(0), myReader.GetString(1))
    > > Loop
    > > Else
    > > Console.WriteLine("No rows returned.")
    > > End If
    > >
    > >
    > >
    > > myReader.Close()
    > >
    > > Myconn.Close()
    > > End Function
    > >
    > > Sub populateDDL_ItemDataBound(ByVal sender As Object, ByVal e As
    > > System.Web.UI.WebControls.DataGridItemEventArgs)
    > >
    > > Dim pageID = CInt(CType(e.Item.FindControl("pageID"),
    > > TextBox).Text)
    > >
    > > 'Construct the Database Connection
    > > Dim Myconn As New
    > > SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    > > Dim cmd As New SqlCommand("SelectOffice", Myconn)
    > >
    > > If e.Item.ItemType = ListItemType.EditItem Then
    > >
    > > cmd.CommandType = CommandType.StoredProcedure
    > >
    > > Myconn.Open()
    > >
    > > Dim add_Office As DropDownList
    > >
    > > 'Populates Office DropDownList with office names
    > > add_Office = CType(e.Item.FindControl("DDLeditOffice"),
    > > DropDownList)
    > > add_Office.DataSource =
    > > cmd.ExecuteReader(CommandBehavior.CloseConnection)
    > > add_Office.DataTextField = "offName"
    > > add_Office.DataValueField = "officeID"
    > > add_Office.DataBind()
    > > add_Office.SelectedIndex = GetSelectedIndex(pageID)
    > > Myconn.Close()
    > > Else
    > >
    > > If e.Item.ItemType = ListItemType.Footer Then
    > >
    > > cmd.CommandType = CommandType.StoredProcedure
    > >
    > > Myconn.Open()
    > >
    > > Dim add_Office As DropDownList
    > >
    > > 'Populates Office DropDownList with office names
    > > add_Office = CType(e.Item.FindControl("DDLaddOffice"),
    > > DropDownList)
    > > add_Office.DataSource =
    > > cmd.ExecuteReader(CommandBehavior.CloseConnection)
    > > add_Office.DataTextField = "offName"
    > > add_Office.DataValueField = "officeID"
    > > add_Office.DataBind()
    > > add_Office.Items.Insert(0, "Select One")
    > > add_Office.Items.FindByText("Select One").Value = 0 'insert
    > > don't create a value, but we need a value during defaults
    > > add_Office.SelectedIndex = 0
    > > Myconn.Close()
    > > End If
    > > End If
    > > End Sub

    >
    >
     
    =?Utf-8?B?VGltOjouLg==?=, Dec 22, 2004
    #3
  4. =?Utf-8?B?VGltOjouLg==?=

    Saravana Guest

    Check out "Displaying a Drop-Down List in Edit Mode" section in this
    article,
    http://msdn.microsoft.com/library/e...spnetdatagridservercontroleditingmultiplerows


    --
    -Saravana
    http://dotnetjunkies.com/WebLog/saravana/
    www.ExtremeExperts.com



    "Tim::.." <myatix_at_hotmail.com> wrote in message
    news:...
    > Can someone tell me how I get the correct selected office in my drop down
    > list when I enter edit mode. At the moment it just defaults to the office

    at
    > the top of the drop down list rather than picking the office that has
    > actually been selected previously!
    >
    > I hope this is clear...
    >
    > Here is my code...
    >
    > Thanks
    >
    > ''''''''''''''''''''''Problem - not reading the correct office when in
    > edit mode
    > Function GetSelectedIndex(ByVal PageID As String) As Integer
    >
    > Dim Myconn As New
    > SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    > Dim cmd As New SqlCommand("SelectOffice", Myconn)
    > cmd.CommandType = CommandType.StoredProcedure
    >
    > Myconn.Open()
    >
    > Dim myReader As SqlDataReader = cmd.ExecuteReader()
    >
    > If myReader.HasRows Then
    > Do While myReader.Read()
    > Console.WriteLine(vbTab & "{0}" & vbTab & "{1}",
    > myReader.GetInt32(0), myReader.GetString(1))
    > Loop
    > Else
    > Console.WriteLine("No rows returned.")
    > End If
    >
    >
    >
    > myReader.Close()
    >
    > Myconn.Close()
    > End Function
    >
    > Sub populateDDL_ItemDataBound(ByVal sender As Object, ByVal e As
    > System.Web.UI.WebControls.DataGridItemEventArgs)
    >
    > Dim pageID = CInt(CType(e.Item.FindControl("pageID"),

    TextBox).Text)
    >
    > 'Construct the Database Connection
    > Dim Myconn As New
    > SqlConnection(ConfigurationSettings.AppSettings("strConn"))
    > Dim cmd As New SqlCommand("SelectOffice", Myconn)
    >
    > If e.Item.ItemType = ListItemType.EditItem Then
    >
    > cmd.CommandType = CommandType.StoredProcedure
    >
    > Myconn.Open()
    >
    > Dim add_Office As DropDownList
    >
    > 'Populates Office DropDownList with office names
    > add_Office = CType(e.Item.FindControl("DDLeditOffice"),
    > DropDownList)
    > add_Office.DataSource =
    > cmd.ExecuteReader(CommandBehavior.CloseConnection)
    > add_Office.DataTextField = "offName"
    > add_Office.DataValueField = "officeID"
    > add_Office.DataBind()
    > add_Office.SelectedIndex = GetSelectedIndex(pageID)
    > Myconn.Close()
    > Else
    >
    > If e.Item.ItemType = ListItemType.Footer Then
    >
    > cmd.CommandType = CommandType.StoredProcedure
    >
    > Myconn.Open()
    >
    > Dim add_Office As DropDownList
    >
    > 'Populates Office DropDownList with office names
    > add_Office = CType(e.Item.FindControl("DDLaddOffice"),
    > DropDownList)
    > add_Office.DataSource =
    > cmd.ExecuteReader(CommandBehavior.CloseConnection)
    > add_Office.DataTextField = "offName"
    > add_Office.DataValueField = "officeID"
    > add_Office.DataBind()
    > add_Office.Items.Insert(0, "Select One")
    > add_Office.Items.FindByText("Select One").Value = 0

    'insert
    > don't create a value, but we need a value during defaults
    > add_Office.SelectedIndex = 0
    > Myconn.Close()
    > End If
    > End If
    > End Sub
     
    Saravana, Dec 22, 2004
    #4
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. =?Utf-8?B?TmV3VG9Eb3ROZXQ=?=

    TextBox and DropDownList in Datagrid Edit mode

    =?Utf-8?B?TmV3VG9Eb3ROZXQ=?=, Jan 30, 2004, in forum: ASP .Net
    Replies:
    2
    Views:
    830
    =?Utf-8?B?TmV3VG9Eb3ROZXQ=?=
    Feb 9, 2004
  2. Luis Esteban Valencia

    dropdownlist in datagrid edit mode

    Luis Esteban Valencia, Sep 29, 2004, in forum: ASP .Net
    Replies:
    0
    Views:
    408
    Luis Esteban Valencia
    Sep 29, 2004
  3. =?Utf-8?B?RGF2ZQ==?=
    Replies:
    2
    Views:
    4,873
    =?Utf-8?B?RGF2ZQ==?=
    Dec 17, 2004
  4. Frank Kurka
    Replies:
    8
    Views:
    343
  5. jobs at webdos
    Replies:
    0
    Views:
    525
    jobs at webdos
    Oct 9, 2006
Loading...

Share This Page