none
Dato Duplicado DropDownList RRS feed

  • Pregunta

  • Buen dia tengo el siguiente codigo:

            For Each dr As DataRow In vdtPais.Rows
                If dr("des_prsbpaisisoa2") IsNot DBNull.Value AndAlso dr("des_prsbpaisisoa2") = "S" Then
                    vDato = dr("des_prsbpaisisoa2").ToString
                    vPaisId = dr("pai_paisisoa2_id").ToString
                End If
            Next
    
            If vDato = "S" Then
    
                ddlPais.DataSource = vdtPais.DefaultView
                ddlPais.AppendDataBoundItems = True
                ddlPais.Items.Insert(0, New ListItem("--Seleccione--", "0"))
                ddlPais.DataValueField = "pai_paisisoa2_id"
                ddlPais.DataTextField = "pai_descripcion"
    ddlPais.SelectedValue = vPaisId ddlPais.DataBind() vdtPais = Nothing oNegPais = Nothing End If

    Mi problema esta en que cuando pongo el SelectedValue obviamente tendre un valor duplicado en el dropdownlist digamos por ejemplo apareceran de manera consecutiva dos veces Peru mi pregunta es como puedo hacer para que no aparescan duplicados y me seleccione lo que se cargue en mi variable vPaisId. Gracias

    lunes, 21 de enero de 2013 16:52

Respuestas

  • porque quitaste la linea

    ddlPais.SelectedValue = vPaisId

    ----

    cuando pasa la ejecucion por aqui

    ddlPais.DataSource = vdtPais.DefaultView

    si insepccionas el vdtPis puede observar que no hay repetidos?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    lunes, 21 de enero de 2013 17:38

Todas las respuestas

  • la verdad no entiendo que quieres lograr con ese codigo

    haces un For Each para tomar un unico valor, porque no usaste linq o sino el metodo

    DataTable.Select

    en una linea podrias tomar el valor

    -----------

    en esta linea

     ddlPais.DataSource = vdtPais.DefaultView

    el vdtPais donde lo cargas? porque alli deberias evitar que de repitan los items, podrias usar el DISTINCT

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 21 de enero de 2013 17:12
  •  vdtPais = oNegPais.F_ListarPais(vCConexion1)
    
            For Each dr As DataRow In vdtPais.Rows
                If dr("des_prsbpaisisoa2") IsNot DBNull.Value AndAlso dr("des_prsbpaisisoa2") = "S" Then
                    vDato = dr("des_prsbpaisisoa2").ToString
                    vPaisId = dr("pai_paisisoa2_id").ToString
                End If
            Next
    
            If vDato = "S" Then
    
                ddlPais.DataSource = vdtPais.DefaultView
                ddlPais.AppendDataBoundItems = True
                ddlPais.Items.Insert(0, New ListItem("--Seleccione--", "0"))
                ddlPais.DataValueField = "pai_paisisoa2_id"
                ddlPais.DataTextField = "pai_descripcion"
                ddlPais.DataBind()
                ViewState.Add("paises", vdtPais)
                vdtPais = Nothing
                oNegPais = Nothing
             End If

    Mi datatable lo declaro antes del For Each lo que deseo es que si mi variable vDato es igual a "S" entonces el SelectedValue va a ser igual a vPaisId hasta alli no tengo problema, el problema es que cuando hago eso aparecen dos registros iguales por ejemplo:

    Argentina
    Brasil
    Peru
    Peru

    lo que quiero saber es si hay forma de controlar eso de que no aparesca dos veces Peru o cualquiero otro registro posiblemente la forma en la que lo hago este mal si tuvieran alguna sugerencia se los agradeceria. Gracias

    lunes, 21 de enero de 2013 17:28
  • porque quitaste la linea

    ddlPais.SelectedValue = vPaisId

    ----

    cuando pasa la ejecucion por aqui

    ddlPais.DataSource = vdtPais.DefaultView

    si insepccionas el vdtPis puede observar que no hay repetidos?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    lunes, 21 de enero de 2013 17:38
  • Ya veo error mio al momento de cargar el datatable efectivamente se estaba repitiendo una fila. Gracias por la respuesta Leandro.
    lunes, 21 de enero de 2013 17:43