ASP.NET - dropdownlist

   
Vista:

dropdownlist

Publicado por nenure (56 intervenciones) el 26/03/2008 09:38:18
Hola!Tengo un dropdownlist con estas opciones:rojo, negro y blanco. Quiero que al seleccionar rojo me vaya a una pagina aspx, al seleccionar negro a otra y al seleccionar blanco a una tercera. No se como poner en el behind el codigo para que me haga esto. Estoy trabajando con visual studio 2005 en vb. Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:dropdownlist

Publicado por @vm (196 intervenciones) el 26/03/2008 17:09:16
EJEMPLO:

En el web form:

<asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server">
<asp:ListItem Value="Ninguno" Text="Seleccione un color" Selected="True"></asp:ListItem>
<asp:ListItem Value="Rojo" Text="Rojo"></asp:ListItem>
<asp:ListItem Value="Negro" Text="Negro"></asp:ListItem>
<asp:ListItem Value="Blanco" Text="Blanco"></asp:ListItem>
</asp:DropDownList>
-----------------------------------------------------
En el behind

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Select Case DropDownList1.SelectedValue
Case "Rojo"
Response.Redirect("URL_rojo")
Case "Negro"
Response.Redirect("URL_negro")
Case "Blanco"
Response.Redirect("URL_blanco")
End Select
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por nenure (56 intervenciones) el 26/03/2008 17:27:37
Hola!Muchas gracias, funciona perfectamente, pero ahora mi pregunta es: si yo quiero que al seleccionar rojo(por ejemplo) me rellene el gridview entero teniendo en cuenta la columna de colores que solo aparezcan rojo? es decir, yo tengo una columna de colores y quiero que me aparezca toda la tabla pero solo con los que tienen color rojo. Es que yo tengo ya en cada pagina que antes he mencionado la select hecha con cada una de las opciones, pero no se como juntar eso para que quede en una sola pagina, el dropdownlist y el gridview correspondiente a la opcion que selecciones en el dropdownlist. GRACIAS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por @vm (196 intervenciones) el 26/03/2008 22:21:49
Tienes una tabla donde uno de los campos es el color, quieres que el gridview muestre los registros que tengan como valor el color seleccionado en el dropdownlist??

De ser asi como lo entiendo, aqui tienes otro ejemplo:

<asp:DropDownList ID="DropDownList1" AutoPostBack="true" runat="server">
<asp:ListItem Value="Ninguno" Text="Seleccione un color" Selected="True"></asp:ListItem>
<asp:ListItem Value="Rojo" Text="Rojo"></asp:ListItem>
<asp:ListItem Value="Negro" Text="Negro"></asp:ListItem>
<asp:ListItem Value="Blanco" Text="Blanco"></asp:ListItem>
</asp:DropDownList>
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="True" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="Cadena_Conexion" ProviderName="System.Data.SqlClient" SelectCommand="SELECT [IdMiRegistro], [Nombre], [Color] FROM [MisRegistros] WHERE ([Color] = @Color)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="Color" PropertyName="SelectedValue"
Type="String" />
</SelectParameters>
</asp:SqlDataSource>

Todo en un solo aspx y sin código behind.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por nenure (56 intervenciones) el 26/03/2008 22:28:43
ok,muchas gracias, esa era la idea de lo que queria, mañana lo probare y te dire si me funciona o no.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por nenure (56 intervenciones) el 27/03/2008 09:05:35
Hola! He probado esta mañana lo que me dijiste ayer, pero no me funciona. Tiene sentido lo que me planteaste, pero no se si debo de ser yo pero los WHERE con lo del @ no me funcionan, de hecho solo me funciona si pongo por ejemplo: select color from colores where color='r', es decir sin [ ] y sin @, sabes por que puede ser?gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por @vm (196 intervenciones) el 27/03/2008 20:14:16
El @ es para indicar que vas tomar el valor de un parámetro, Color = @MiParametro, le puedes poner el nombre que sea, obvio como le pones un valor definido funciona. Revisa que estés mandando bien el parámetro, en el ejemplo el SelectCommand del DataSource esta así:
SELECT [IdMiRegistro], [Nombre], [Color] FROM [MisRegistros] WHERE ([Color] = @Color)

Si te fijas estoy diciendo que el parámetro se llama @Color. Ahora asegurate que estas enviando el parámetro en los SelectParameters, ejemplo:

<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="Color" PropertyName="SelectedValue"
Type="String" />

Name si te fijas lleva el nombre del parámetro pero sin el @, debe ser de tipo, asp:ControlParameter se refiere a que el parámetro se va tomar de un control del mismo aspx, ControlID igual al nombre de tu dropdownlist y PropertyName debe llevar "SelectedValue" para tomar el valor seleccionado del dropdownlist, Type el tipo de dato.

El error quizás este en el nombre del parámetro o del dropdownlist, tambien revisa que el dropdownlist tenga el AutoPostBack=True.

Manda tu código para revisarlo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por nenure (56 intervenciones) el 28/03/2008 09:43:00
Hola! Ya lo he probado todo y sigue sin funcionarme. No se ya que es lo que pasa o que hago mal.Lo que queria hacer era un poco mas complicado pero te mando el ejemplo que he hecho de lo mas sencillo para ver que tampoco funciona. Te mando el codigo de mi pagina y te mando tambien el error.

CODIGO:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="borrar.aspx.vb" Inherits="Inmobiliarias_borrar" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Página sin título</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True">
<asp:ListItem>Estella</asp:ListItem>
<asp:ListItem>Solares</asp:ListItem>
<asp:ListItem>Ermua</asp:ListItem>
</asp:DropDownList>
<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1">
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:conexion buena %>"
ProviderName="<%$ ConnectionStrings:conexion buena.ProviderName %>" SelectCommand="SELECT inmobiliaria, zona FROM nerea2_inmobiliarias WHERE ([zona]=@zona)">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="zona" PropertyName="SelectedValue" Type="string" />
</SelectParameters>
</asp:SqlDataSource>
</div>
</form>
</body>
</html>

ERROR QUE SE GENERA:

Error de servidor en la aplicación '/PLANTILLA gridview-detailsview28-03-2008'.
--------------------------------------------------------------------------------

Uno o más errores al procesar el comando.
ORA-00936: falta una expresión
Descripción: Excepción no controlada al ejecutar la solicitud Web actual. Revise el seguimiento de la pila para obtener más información acerca del error y dónde se originó en el código.

Detalles de la excepción: System.Data.OleDb.OleDbException: Uno o más errores al procesar el comando.
ORA-00936: falta una expresión

Error de código fuente:

Se ha generado una excepción no controlada durante la ejecución de la solicitud Web actual. La información sobre el origen y la ubicación de la excepción pueden identificarse utilizando la excepción del seguimiento de la pila siguiente.

Seguimiento de la pila:

[OleDbException (0x80040e14): Uno o más errores al procesar el comando.
ORA-00936: falta una expresión]
System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +177
System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +194
System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +56
System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +105
System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +91
System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) +4
System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +139
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) +139
System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) +83
System.Web.UI.WebControls.SqlDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +1659
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +13
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +140
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +68
System.Web.UI.WebControls.GridView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +61
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +67
System.Web.UI.Control.EnsureChildControls() +97
System.Web.UI.Control.PreRenderRecursiveInternal() +50
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Control.PreRenderRecursiveInternal() +171
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5731


Siento mucho el trabajo que te estoy dando, pero me estas ayudando mucho, GRACIAS.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por @vm (196 intervenciones) el 28/03/2008 19:02:07
OK, quizás el problema esta en el objeto SQLDataSource me da a pensar que no estas conectándote a una base de datos en SQL Server. A que tipo de base de datos te estas conectando, para poder decirte el objeto apropiado.

Saludos!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:dropdownlist

Publicado por nenure (56 intervenciones) el 30/03/2008 22:17:51
Hola! Me estoy conectando a una base de datos de Oracle. En el web.config tengo puesto <add name="ConnectionString" connectionString="Provider=MSDAORA;Data Source=nombre;Password=password;User ID=usuario" providerName="System.Data.OleDb"/>

Asi es como me conecto a la base de datos. Muchas gracias por tu ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar