ASP.NET - Seleccionar datos de un Gridview con Dropdownlist

 
Vista:

Seleccionar datos de un Gridview con Dropdownlist

Publicado por Eli  (3 intervenciones) el 03/10/2008 12:41:38
Hola, mi duda es la siguiente:

Lo que intento es realizar una búsqueda a través de dos dropdownlist y que el resultado me aparezca en un gridview, en el primero lo que hago es seleccionar unos rangos de valores(metros cuadrados y en segundo seleccionar una localidad), por separado me salen las busquedas pero el problema que tengo es que se cumplan a la vez las dos condiciones selecionadas del dropdownlist. El código que tengo es el siguiente:

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

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

<script language="VB" Runat="server">
Sub SubmitBtn_Click(ByVal Sender As Object, ByVal e As EventArgs)
Dim val As String

val = DropDownList1.SelectedItem.Value

Label1.Text = val

End Sub

Sub doCheck(ByVal Source As Object, ByVal E As EventArgs)

If DropDownList1.SelectedItem.Value = 1 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([metros]<'100')"
End If
If DropDownList1.SelectedItem.Value = 2 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([metros]>'100')"
End If
If DropDownList1.SelectedItem.Value = 3 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades]"
End If

End Sub

Sub doCheck1(ByVal Source As Object, ByVal E As EventArgs)

If DropDownList2.SelectedItem.Value = 1 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([localidad]='Carnota')"
End If
If DropDownList2.SelectedItem.Value = 2 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([localidad]='Muros')"
End If
If DropDownList2.SelectedItem.Value = 3 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades]"
End If

End Sub

</script>
<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" DataSourceID="SqlDataSource1"
OnSelectedIndexChanged="doCheck" DataTextField="metros" DataValueField="metros" AppendDataBoundItems="true" >
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="3"> todas </asp:ListItem>
<asp:ListItem Value="1"> <100 </asp:ListItem>
<asp:ListItem Value="2"> >100 </asp:ListItem>
</asp:DropDownList><br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:inmobiliariaConnectionString24 %>"
>
</asp:SqlDataSource>
 <br />
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource3"
OnSelectedIndexChanged="doCheck1" DataTextField="localidad" DataValueField="localidad" AppendDataBoundItems="true" >
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="3"> todas </asp:ListItem>
<asp:ListItem Value="1"> Carnota </asp:ListItem>
<asp:ListItem Value="2"> Muros </asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:inmobiliariaConnectionString29 %>"
>
</asp:SqlDataSource>

<br />
<br />

<asp:button ID="Button2" text="Submit" OnClick="SubmitBtn_Click" runat="server"/> <br />

<br />
<br />

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="idpropiedad"
DataSourceID="SqlDataSource2" EmptyDataText="No hay registros de datos para mostrar.">
<Columns>
<asp:BoundField DataField="idpropiedad" HeaderText="idpropiedad" ReadOnly="True"
SortExpression="idpropiedad" />
<asp:BoundField DataField="nombrepropiedad" HeaderText="nombrepropiedad" SortExpression="nombrepropiedad" />
<asp:BoundField DataField="interes" HeaderText="interes" SortExpression="interes" />
<asp:BoundField DataField="entorno" HeaderText="entorno" SortExpression="entorno" />
<asp:BoundField DataField="tipo" HeaderText="tipo" SortExpression="tipo" />
<asp:BoundField DataField="metros" HeaderText="metros" SortExpression="metros" />
<asp:BoundField DataField="localidad" HeaderText="localidad" SortExpression="localidad" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:inmobiliariaConnectionString1 %>"
ProviderName="<%$ ConnectionStrings:inmobiliariaConnectionString1.ProviderName %>"
SelectCommand="SELECT [idpropiedad], [nombrepropiedad], [entorno], [tipo], [metros], [dormitorios][localidad], [utensiliosvivienda] FROM [propiedades] WHERE ([metros] = @metros) AND ([localidad] = @localidad) ">

<SelectParameters>

<asp:ControlParameter ControlID="DropDownList2" DefaultValue="" Name="localidad"
PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="metros"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>

</asp:SqlDataSource>

</div>
</form>
</body>
</html>
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:Seleccionar datos de un Gridview con Dropdownli

Publicado por Hector (11 intervenciones) el 03/10/2008 15:41:17
Hola, sabes que yo tuve que hacer o mismo un dia y no me complique tanto sino agregue el datagrid en modo diseño vb en asp.net y le agregue la base de datos y la tabla mediante el asistente del gridview, y ahi hay una parte que te permite usar la sentencia where de sql y eliges el campo y lo igualas a un dropdownlist, y agregas, luego eliges otro campo y lo igualas al otro dropdownlist, o lo que puedes hacer es tu la sentencia SQl pero igualando los campos que necesites al dropdownlist.text, que no lo vi en tu codigo.

Suerte yo ocupe solo esa sentencia sql y me srive de maravilla
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:Seleccionar datos de un Gridview con Dropdownli

Publicado por Eli  (3 intervenciones) el 03/10/2008 17:41:12
Antes de nada, muchas gracias por responder.
He probado lo que me dices de agregar el gridview con el asistente pero, los resultados de búsqueda que me dan en el Gridview no cumplen siempre las dos condiciones seleccionadas en el dropdownlist, no se que pasa.
A cada ItemList de cada dropdown le asocio una sentencia sql en los métodos doCheck
y doCheck1, esa es la única forma que se me ocurrió de seleccionar rangos(>100 o <100 ) y la opción de seleccionar todo.
La opción de hacer la sentencia sql igualando a dropdownlist.text no la pillo, me podrías poner un ejemplo.
Gracias de nuevo y ahí vuelvo a poner mi código:

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

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

<script language="VB" Runat="server">
Sub SubmitBtn_Click(ByVal Sender As Object, ByVal e As EventArgs)
Dim val As String

val = DropDownList1.SelectedItem.Value

Label1.Text = val

End Sub

Sub doCheck(ByVal Source As Object, ByVal E As EventArgs)

If DropDownList1.SelectedItem.Value = 1 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([metros]<'100')"
End If
If DropDownList1.SelectedItem.Value = 2 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([metros]>'100')"
End If
If DropDownList1.SelectedItem.Value = 3 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades]"
End If

End Sub

Sub doCheck1(ByVal Source As Object, ByVal E As EventArgs)

If DropDownList2.SelectedItem.Value = 1 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([localidad]='Carnota')"
End If
If DropDownList2.SelectedItem.Value = 2 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades] WHERE ([localidad]='Muros')"
End If
If DropDownList2.SelectedItem.Value = 3 Then
SqlDataSource2.SelectCommand = "SELECT [idpropiedad], [nombrepropiedad], [interes], [entorno], [tipo], [metros], [localidad] FROM [propiedades]"
End If

End Sub

</script>
<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" DataSourceID="SqlDataSource1"
OnSelectedIndexChanged="doCheck" DataTextField="metros" DataValueField="metros" AppendDataBoundItems="true" >
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="3"> todas </asp:ListItem>
<asp:ListItem Value="1"> <100 </asp:ListItem>
<asp:ListItem Value="2"> >100 </asp:ListItem>
</asp:DropDownList><br />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:inmobiliariaConnectionString24 %>"
>
</asp:SqlDataSource>
<br />
<asp:DropDownList ID="DropDownList2" runat="server" DataSourceID="SqlDataSource3"
OnSelectedIndexChanged="doCheck1" DataTextField="localidad" DataValueField="localidad" AppendDataBoundItems="true" >
<asp:ListItem></asp:ListItem>
<asp:ListItem Value="3"> todas </asp:ListItem>
<asp:ListItem Value="1"> Carnota </asp:ListItem>
<asp:ListItem Value="2"> Muros </asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:inmobiliariaConnectionString29 %>"
>
</asp:SqlDataSource>

<br />
<br />

<asp:button ID="Button2" text="Submit" OnClick="SubmitBtn_Click" runat="server"/> <br />

<br />
<br />

<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> <br />
<br />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="idpropiedad"
DataSourceID="SqlDataSource2" EmptyDataText="No hay registros de datos para mostrar.">
<Columns>
<asp:BoundField DataField="idpropiedad" HeaderText="idpropiedad" ReadOnly="True"
SortExpression="idpropiedad" />
<asp:BoundField DataField="nombrepropiedad" HeaderText="nombrepropiedad" SortExpression="nombrepropiedad" />
<asp:BoundField DataField="interes" HeaderText="interes" SortExpression="interes" />
<asp:BoundField DataField="entorno" HeaderText="entorno" SortExpression="entorno" />
<asp:BoundField DataField="tipo" HeaderText="tipo" SortExpression="tipo" />
<asp:BoundField DataField="metros" HeaderText="metros" SortExpression="metros" />
<asp:BoundField DataField="localidad" HeaderText="localidad" SortExpression="localidad" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:inmobiliariaConnectionString1 %>"
ProviderName="<%$ ConnectionStrings:inmobiliariaConnectionString1.ProviderName %>"
SelectCommand="SELECT [idpropiedad], [nombrepropiedad], [entorno], [tipo], [metros], [dormitorios][localidad], [utensiliosvivienda] FROM [propiedades] WHERE ([metros] = @metros) AND ([localidad] = @localidad) ">

<SelectParameters>

<asp:ControlParameter ControlID="DropDownList2" DefaultValue="" Name="localidad"
PropertyName="SelectedValue" Type="String" />
<asp:ControlParameter ControlID="DropDownList1" DefaultValue="" Name="metros"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>

</asp:SqlDataSource>

</div>
</form>
</body>
</html>
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:Seleccionar datos de un Gridview con Dropdownli

Publicado por Hector (11 intervenciones) el 03/10/2008 19:42:15
Hola, que raro que no te funcione con el asistente del gridview, bueno en esta linea tienes ke igualar los campos que necesitas que se ejecuten de acuerdo alo que eliges en el dropdownlist.

%>"
SelectCommand="SELECT [idpropiedad], [nombrepropiedad], [entorno], [tipo], [metros], [dormitorios][localidad], [utensiliosvivienda] FROM [propiedades] WHERE ([metros] = @metros) AND ([localidad] = @localidad) ">

despues del where tienes que igualar, donde metros sean igual alo que elegiste en el dropdownlist, osea metros='" & dropdownlist1.text & "' y la localidad= '" & dropdownlist2.text & "', ya que por lo visto el primer dropdownlist es el de los metros y luego el de las localidades, prueba con eso porque por lo visto son las variables @metros y @locaildad las que no te funcionan,
Sino trata de hacer lo mismo que hice con los dropdownlist pero con las varibles osea dejar las variables dentro de comillas simples, luego comillas dobles, luego espacio, ampersand espacio y la variable, para SQL sepa que son variables. ejemplo

SelectCommand="SELECT [idpropiedad], [nombrepropiedad], [entorno], [tipo], [metros], [dormitorios][localidad], [utensiliosvivienda] FROM [propiedades] WHERE ([metros] = '" & @metros & "') AND ([localidad] = '" & @localidad & "')

Espero que sea eso y soluciones tu problema
sino me escribes nuevamente yo buscare otra solucion si es posible
Suerte
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:Seleccionar datos de un Gridview con Dropdownli

Publicado por Eli  (3 intervenciones) el 03/10/2008 20:17:00
Gracias de nuevo por responder, estoy probando lo que me dices de mil formas distintas pero sigue sin funcionar, pero gracias por molestarte, seguiré probando,
un saludo
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:Seleccionar varios datos de un Gridview

Publicado por juan carlos (1 intervención) el 10/03/2009 17:51:32
AMIGO AYUDAME POR FAVOR ESTO LO REALIZO, PARA SUSTENTAR MI TESIS QUE ES PASADO MAÑANA MOSTRANDO COSAS NUEVAS

BUENO LO QUE QUIEREO ES SELECCIONAR VARIOS DATOS DE UN GRIDVIEW DE ASP
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