Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/06/2009, 02:57
Avatar de menxucp27
menxucp27
 
Fecha de Ingreso: enero-2009
Ubicación: Sagunto
Mensajes: 50
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: filtros y gridview

No me deja publicar una imagen, pero te pongo el codigo.

Aqui el codigo del dropdownlist:

<asp:DropDownList ID="ddl_Personas" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddls_SelectedIndexChanged" >
<asp:ListItem Value="">No importa</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="4">4</asp:ListItem>
<asp:ListItem Value="6">6</asp:ListItem>
<asp:ListItem Value="8">8</asp:ListItem>
<asp:ListItem Value="10">10</asp:ListItem>
<asp:ListItem Value="12">mas de 10</asp:ListItem>
</asp:DropDownList>

Aqui el codigo del SqlDataSource asociado al gridview:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:casaspain01ConnectionString %>"
ProviderName="<%$ ConnectionStrings:casaspain01ConnectionString.Prov iderName %>"
SelectCommand="SELECT * FROM [ALOJAMIENTOS] WHERE ([PAIS] = ?) ORDER BY [OPORTUNIDAD]">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="greece" Name="PAIS" QueryStringField="p" Type="String" />
</SelectParameters>
<FilterParameters>
<asp:ControlParameter ControlID="ddl_Personas" Name="personas" PropertyName="SelectedValue" Type="Int32" DefaultValue="-1" />
</FilterParameters>
</asp:SqlDataSource>

Aqui el codigo de la funcion ddls_SelectedIndexChanged:

Protected Sub ddls_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)

Dim per As Boolean = String.IsNullOrEmpty(ddl_Personas.SelectedValue)

SqlDataSource1.FilterParameters.Clear()
SqlDataSource1.FilterExpression = ""

If (Not per) Then
SqlDataSource1.FilterParameters.Add(New System.Web.UI.WebControls.ControlParameter("person as", TypeCode.Int32, "ddl_Personas", "SelectedValue"))
SqlDataSource1.FilterExpression = "(personas + personasm) >= {0}"
End If

End Sub

Puedo seleccionar hasta 4 valores diferentes para filtrar el grid. En el codigo pongo solo uno para simplificar.

Gracias por tu ayuda.