Sort columns of a GridView in ASP.NET C #

0

I want to sort the columns of a GridView in ASP.NET, I am consuming an external service that throws me and the results and that result I have put it in a grid, that is to say in a GridView but what I want is to order by columns.

This is my code:

ServiceReference1.SvcCreditoExternoClient tabla = new ServiceReference1.SvcCreditoExternoClient();
ServiceReference1.DtoGeneradorTablaAmortizacionRequest dtorequest = new ServiceReference1.DtoGeneradorTablaAmortizacionRequest();
ServiceReference1.DtoDividendo dtodividendo = new ServiceReference1.DtoDividendo();
List<ServiceReference1.DtoDividendo> listadtodividendo;

dtorequest.AjustarTabla = ServiceReference1.EnumeradosConfiguracionNegocioMetodosAjusteTabla.SinAjuste;
dtorequest.AplicaAlgoritmoRedondeoCuota = true;
dtorequest.AplicaDiaLaborable = true;
dtorequest.AplicaDiaLaborableFinSemanaAdelante = true;
dtorequest.AplicaFechasIguales = true;
dtorequest.AplicaFindeMes = true;
dtorequest.AplicaPrimerVencimiento = true;
dtorequest.BaseCalculo = 360;
dtorequest.CodigoSectorOrganismoControl = 0;
dtorequest.Decimales = 2;
dtorequest.DecimalesCuota = 2;
dtorequest.DecimalesTasa = 2;
dtorequest.EsExento = false;
dtorequest.FactorDeRedondeo = ServiceReference1.EnumeradosConfiguracionNegocioFactorRedondeo.SnDecimales;
dtorequest.Fecha1erVencimiento = Convert.ToDateTime(txtFechaDesembolso.Text);//Convert.ToDateTime("2016-07-06");
dtorequest.FechaInicioTabla = Convert.ToDateTime("2016-05-29");
//FormaPago = 12,
dtorequest.GeneraTasaObjetivo = false;
dtorequest.Gradiente = 0;
dtorequest.Idproducto = 1;
dtorequest.Institucion = 1;

Decimal FactorMaximo;
FactorMaximo = Convert.ToDecimal(150000);
Decimal TasaMensual;
TasaMensual = Convert.ToDecimal(0.08);
Decimal TasaDiaria;
TasaDiaria = Convert.ToDecimal((TasaMensual / 30) / 100);
Session["2"] = TasaDiaria;
Decimal Plazo;
Plazo = Convert.ToInt32(dprNumerocuota.SelectedItem.Text.Substring(0, 2)) * 30;
Decimal factor1, factor2;
factor1 = (Convert.ToDecimal(txtImporteCredito.Text) * Convert.ToInt32(Plazo) * Convert.ToDecimal(TasaDiaria)) + Convert.ToDecimal(txtImporteCredito.Text);
Session["3"] = factor1;
factor2 = Convert.ToDecimal(factor1) * Convert.ToInt32(Plazo) * Convert.ToDecimal(TasaDiaria);
Session["4"] = factor2;
Decimal SeguroDesgravamen;
SeguroDesgravamen = (Convert.ToDecimal(factor1) > Convert.ToDecimal(FactorMaximo) ? Convert.ToDecimal(FactorMaximo) : Convert.ToDecimal(factor2));
Session["5"] = SeguroDesgravamen;
Decimal MontoFinanciado;
MontoFinanciado = Math.Round(Convert.ToDecimal(txtImporteCredito.Text) + Convert.ToDecimal(SeguroDesgravamen), 2);
Session["6"] = MontoFinanciado;
Label1.Text = Convert.ToString(MontoFinanciado);

//ListaRubroDiferido = Rubrio.Add(pag),
dtorequest.Monto = MontoFinanciado;//Convert.ToDecimal(txtImporteCredito.Text);//Convert.ToDecimal(1900.00);
dtorequest.MontoCapitalFijo = 0;
dtorequest.MontoTIR2 = 10000;
dtorequest.MontoTIR3 = 0;
int somestring = Convert.ToInt32(dprNumerocuota.SelectedItem.Value);
dtorequest.NumeroCuotas = Convert.ToInt32(dprNumerocuota.SelectedItem.Text.Substring(0, 2));// 12;
dtorequest.Oficina = 5;
dtorequest.Periodicidad = 30;
dtorequest.PeriodicidadCapital = 0;
dtorequest.PeriodicidadInteres = 0;
dtorequest.PeriodosGracia = 0;
dtorequest.Plazo = Convert.ToInt32(dprNumerocuota.SelectedItem.Text.Substring(0, 2)) * 30;

Session["7"] = dtorequest.Plazo;
Session["8"] = Convert.ToInt32(dprNumerocuota.SelectedItem.Text.Substring(0, 2));

dtorequest.PorcentajeMinimoCuoton = 0;
dtorequest.RedondeoHacia = ServiceReference1.EnumeradosConfiguracionNegocioTipoRedondeo.Arriba;   
dtorequest.Tasa = Convert.ToDecimal(txtTEA.Text);//40;
dtorequest.TasaInicialObjetivo = 0;
dtorequest.TipoGracia = ServiceReference1.EnumeradosConfiguracionNegocioTipoGracia.GraciaCapital;
dtorequest.TipoTabla = "CUOTFIJA";

listadtodividendo = tabla.ConsultarTablaAmortizacion(dtorequest).ToList();

GridView1.DataSource = listadtodividendo;

GridView1.DataBind();

At the beginning when I executed several rows that I did not want left, then I hid them.

Really, I just need the ordination.

I want to order them like this:

But it looks like this:

    
asked by PieroDev 14.06.2017 в 17:24
source

1 answer

1

The result that fills the GridView you're getting in a list, then, that's where you can apply which columns go first, and which ones later. Using Linq, you can take the original list and from there create a new one that will serve as the data source of GridView :

//Aquí va todo el código que actualmente tienes
listadtodividendo = tabla.ConsultarTablaAmortizacion(dtorequest).ToList();

var nuevolistadtodividendo = (from o in listadtodividendo
                select new {
                    Capital = o.Capital
                    Cuota = o.Cuota
                }).Tolist();

GridView1.DataSource = nuevolistadtodividendo;
//Aquí va todo el código que actualmente tienes

The only thing you have to do is put the columns you want in the select section and they will be sorted automatically.

    
answered by 14.06.2017 / 21:58
source