ASP.NET ListBox

0

Good afternoon I have a listbox ( webcontrols ) in ASP.net that I charge in the following way:

ListPatentesAsignadas.DataSource = patente.RecuperarPatenteFamilia(i, 
Padre);
ListPatentesAsignadas.DataValueField = "Nombre";
ListPatentesAsignadas.DataBind();

I need each element of that selected control to pass the Id and its Name. But at the time of selecting it, I only find the position and the name. Is there any way to pass the data to an object?

For the moment I can achieve this but without success. Can you help me?

            for (int i = 0;i< ListPatentesAsignadas.Items.Count; i++)
            {
                if (ListPatentesAsignadas.Items[i].Selected == true)
                {
                    entidadPatente.IdPermiso = ListPatentesAsignadas.SelectedIndex;
                    entidadPatente.Nombre = ListPatentesAsignadas.Items[i].ToString();
                }
            }
    
asked by magi0 29.01.2018 в 21:42
source

2 answers

0

Instead of assigning patents directly to property DataSource , try saving the patents list in a private variable of the class:

private List<Patentes> patentes;
public void nombreMetodo()
{
    this.patentes = patente.RecuperarPatenteFamilia(i, Padre);
    ListPatentesAsignadas.DataSource = patente.RecuperarPatenteFamilia(i, Padre);
    ListPatentesAsignadas.DataValueField = "Nombre";
    ListPatentesAsignadas.DataBind();
}

Then at the moment you select, you look for the patents by the index indicated in the SelectedIndex property of ListBox . So instead of:

for (int i = 0;i< ListPatentesAsignadas.Items.Count; i++)
            {
                if (ListPatentesAsignadas.Items[i].Selected == true)
                {
                    entidadPatente.IdPermiso = ListPatentesAsignadas.SelectedIndex;
                    entidadPatente.Nombre = ListPatentesAsignadas.Items[i].ToString();
                }
            }

Serious:

Patente patenteSeleccionada = patentes.ElementAt(ListPatentesAsignadas.SelectedIndex);
// ahora puedes acceder a cualquier propiedad de la patente seleccionada 
// como por ejemplo patenteSeleccionada.Nombre
    
answered by 31.01.2018 / 20:07
source
0

              

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False" AutoGenerateSelectButton="True" CellPadding="4" OnSelectedIndexChanged="GridView1_SelectedIndexChanged" PageSize="5">
        <Columns>
            <asp:BoundField DataField="IdPermiso" />
            <asp:BoundField DataField="Nombre" />
        </Columns>
    </asp:GridView>
    <br />
    <br />
    <br />
    <asp:ListBox ID="ListPatentesAsignadas" runat="server" Height="205px" Width="237px"></asp:ListBox>
    <asp:Button ID="btnGuitarPatente" runat="server" Text="--&gt;" OnClick="btnGuitarPatente_Click" />
    <asp:Button ID="btnAgregarPatente" runat="server" Text="&lt;--" OnClick="btnAgregarPatente_Click" style="height: 26px" />
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    <br />
    <br />
    <br />
    <br />
    <br />
    <asp:ListBox ID="ListPatentesDisponibles" runat="server" Height="205px" Width="237px"></asp:ListBox>
    <br />
    <br />
    <br />
    <br />

</div>
</form>

    
answered by 30.01.2018 в 02:31