OI Circular implementación completa de todos los dropdowns con filtrado javascript

-Se modifica FiltrarTablaStrMulti para soportar datos tipo valor -1
-La función FBColumn se mejora
This commit is contained in:
MLopez
2023-02-14 18:52:45 -07:00
parent 7278b31649
commit 02ba9d94b2
4 changed files with 50 additions and 46 deletions

View File

@@ -25,7 +25,6 @@ Imports iText.Html2pdf
Imports iText.Html2pdf.Resolver.Font
Imports iText.Layout.Properties
Imports Newtonsoft.Json
Namespace Extensiones
#Region "E X T E N S I O N E S"
@@ -1647,20 +1646,32 @@ Namespace Extensiones
<Runtime.CompilerServices.Extension()>
Public Function FBColumn(gv As GridView, name As String) As DataControlField
name = name.ToLower
For Each col As DataControlField In gv.Columns
If TypeOf col Is BoundField Then
Dim field As BoundField = CType(col, BoundField)
If field.DataField.ToLower = name OrElse field.SortExpression.ToLower = name OrElse field.HeaderText.Trim.ToLower = name Then
Return col
name = name.ToLower()
Dim headerCells As TableCellCollection = Nothing
If gv.Columns.Count > 0 Then
For i = 0 To gv.Columns.Count - 1 'Si las columnas son autogeneradas, el número de columnas siempre es 0
Dim col = gv.Columns(i)
If TypeOf col Is BoundField Then
Dim field As BoundField = CType(col, BoundField)
If field.DataField.ToLower() = name OrElse field.SortExpression.ToLower() = name OrElse field.HeaderText.Trim().ToLower() = name Then
Return col
End If
Continue For
ElseIf TypeOf col Is HyperLinkField Then
Dim field As HyperLinkField = CType(col, HyperLinkField)
If field.DataTextField.ToLower() = name OrElse field.SortExpression.ToLower() = name OrElse field.HeaderText.Trim().ToLower() = name Then
Return col
End If
Continue For
End If
ElseIf TypeOf col Is HyperLinkField Then
Dim field As HyperLinkField = CType(col, HyperLinkField)
If field.DataTextField.ToLower = name OrElse field.SortExpression.ToLower = name OrElse field.HeaderText.Trim.ToLower = name Then
Return col
If headerCells Is Nothing Then headerCells = gv.HeaderRow?.Cells
If headerCells IsNot Nothing Then
If headerCells(i).Text.Trim().ToLower() = name Then
Return col
End If
End If
End If
Next
Next
End If
Return Nothing
End Function

View File

@@ -234,7 +234,7 @@
<div class="col-md-12">
<asp:GridView ID="GVUsuarios" runat="server" AutoGenerateColumns="false" DataKeyNames="Nombre,Correo,Empresa,CveRol,CveSubProyecto"
<asp:GridView ID="GVUsuarios" runat="server" AutoGenerateColumns="false" DataKeyNames="Nombre,Correo,Empresa,CveRol,CveSubProyecto,CveClasificacion"
CssClass="table table-striped table-advance table-hover Widthall ScrollAD GVUsuarios" GridLines="None" data-height="200"
OnRowDataBound="GVUsuarios_RowDataBound">
<Columns>
@@ -247,18 +247,11 @@
<asp:CheckBox ID="ChkOk" CssClass="ChkOk" Checked="false" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate></HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlNombre" runat="server" Text='<%# Eval("Nombre") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<HeaderTemplate>Rol</HeaderTemplate>
<ItemTemplate>
<asp:Literal ID="LtlRol" runat="server" Text='<%# Eval("Rol") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Nombre" HeaderText="Nombre" />
<asp:BoundField DataField="Rol" HeaderText="Rol" />
<asp:BoundField DataField="CveRol" HeaderText="CveRol" HeaderStyle-CssClass="hidden" ItemStyle-CssClass="hidden" />
<asp:BoundField DataField="CveSubProyecto" HeaderText="CveSubProyecto" HeaderStyle-CssClass="hidden" ItemStyle-CssClass="hidden" />
<asp:BoundField DataField="CveClasificacion" HeaderText="CveClasificacion" HeaderStyle-CssClass="hidden" ItemStyle-CssClass="hidden" />
</Columns>
</asp:GridView>
@@ -348,13 +341,15 @@
//}
function filtrarx() {
//console.log('Entre 3')
//var filtro = sotext($("div[id^='C_DVModalFiltros'] select:first").attr("id"));
//console.log(filtro)
FiltrarTablaStrMulti('<%=GVUsuarios.ClientID %>', null, sotext('<%=DdlRoles.ClientID %>'), $('#TxtBusquedaCorreos').val());
var filtros = $("div[id^='C_DVModalFiltros'] select").map(function () {
return soval(this.id);
}).get();
//console.log(filtros)
FiltrarTablaStrMulti('<%=GVUsuarios.ClientID %>', null, $('#TxtBusquedaCorreos').val(), ...filtros);
}
function ADSBegin() {
// loadeventos();
// showhideUser()
// showhideUser();
}
//inicializa tablas select2me etc etc.....
function ADSReady() {

View File

@@ -157,39 +157,37 @@ public partial class OI_CircularDetalleB : ClsPaginas
DVModalFiltrosProveedores.Visible = false;
DVModalFiltrosPersonal.Visible = false;
DVModalFiltrosCliente.Visible = false;
GVUsuarios.FBColumn("Rol").Visible = false;
switch (RLBTipoEnvioTipo.SelectedValue.ToEntero())
switch (RLBTipoEnvioTipo.SelectedValue.ToEntero())
{
case 1:
DVModalFiltrosUsuarios.Visible = true;
GVUsuarios.Columns[2].Visible = true;
GVUsuarios.FBColumn("Rol").Visible = true;
intTipoConsulta = 1;
break;
case 2:
DVModalFiltrosProveedores.Visible = true;
GVUsuarios.Columns[2].Visible = false;
intTipoConsulta = 2;
break;
case 3:
DVModalFiltrosPersonal.Visible = true;
GVUsuarios.Columns[2].Visible = false;
intTipoConsulta = 3;
break;
case 4:
DVModalFiltrosCliente.Visible = true;
GVUsuarios.Columns[2].Visible = false;
intTipoConsulta = 4;
break;
default:
DVModalFiltrosUsuarios.Visible = true;
GVUsuarios.Columns[2].Visible = true;
GVUsuarios.FBColumn("Rol").Visible = true;
intTipoConsulta = 1;
break;
}
ClsOIEventos ObjOI = new ClsOIEventos();
if (ObjOI.GetCircularCorreos(intTipoConsulta, UsuarioActual.CveEmpresa, -1, DdlSubProyecto.SelectedValue.ToEntero(), DdlCveClasificacionProveedor.SelectedValue.ToEntero(), DdlSubProyectoPersonal.SelectedValue.ToEntero(), DdlClasificacion.SelectedValue.ToEntero()))
if (ObjOI.GetCircularCorreos(intTipoConsulta, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1))
{
if (ObjOI.DtResultados.Rows.Count >= 1000)
@@ -220,7 +218,7 @@ public partial class OI_CircularDetalleB : ClsPaginas
ObjOI.Dispose();
GVUsuarios.DataBind();
UpModalSeleccionCorreos.Update();
UpModalSeleccionCorreos.Update();
}
protected void GVUsuarios_RowDataBound(object sender, GridViewRowEventArgs e)
@@ -527,22 +525,22 @@ public partial class OI_CircularDetalleB : ClsPaginas
protected void DdlSubProyecto_SelectedIndexChanged(object sender, EventArgs e)
{
ConsultaCorreos();
//ConsultaCorreos();
}
protected void DdlCveClasificacionProveedor_SelectedIndexChanged(object sender, EventArgs e)
{
ConsultaCorreos();
//ConsultaCorreos();
}
protected void DdlSubProyectoPersonal_SelectedIndexChanged(object sender, EventArgs e)
{
ConsultaCorreos();
//ConsultaCorreos();
}
protected void DdlClasificacion_SelectedIndexChanged(object sender, EventArgs e)
{
ConsultaCorreos();
//ConsultaCorreos();
}
protected void LnlActualizarCorreos_Click(object sender, EventArgs e)

View File

@@ -90,7 +90,7 @@ function FiltrarTabla(idtxt, idtable, idcontador) {
}
function FiltrarTablaStr(str, idtable, idcontador) {
if (str == '' || str == 'Todos') { $('table#' + idtable + ' tr').css('display', ''); }
if (str == '' || str == "-1" || str == 'Todos') { $('table#' + idtable + ' tr').css('display', ''); }
else {
$('table#' + idtable + ' tr:not(.ADtr)').css('display', 'none');
$('table#' + idtable + ' tr:contains("' + str + '")').css('display', '');
@@ -106,7 +106,7 @@ function FiltrarTablaStrMulti(idtable, idcontador /*, str1, str2, str3...*/ ) {
let strc = '';
for (let i = 2 /*a partir del 3er argumento obtiene los str*/; i < arguments.length; i++) {
let str = arguments[i];
if (str != '' && str != 'Todos') {
if (str != '' && str != "-1" && str != 'Todos') {
strc += ':contains("' + str + '")';
}
}