asp.net - route - tag helpers asp net core




¿Cómo puedo ascender por fecha en una grilla? (3)

Establezca la propiedad AllowSorting en verdadero, agregue el evento OnSorting a la vista grid. A continuación, agregue las condiciones para ordenar el evento OnSorting . Puede probar esta referencia para más detalles.

Estoy haciendo una lista de búsqueda a través de una cuadrícula en el formulario web asp.net. Estoy usando el servicio web para cargar la grilla. Ahora, ¿cómo puedo subir la fecha de solicitud?

 gvproposal.DataSource = webservice.EnquiryGetAllLcRequest();
 gvproposal.DataBind();

aquí simplemente ato el servicio web ahora ¿cómo puedo subir la fecha?

public IS_LC_REQUEST[] EnquiryGetAllLcRequest();

este es el método de servicio web.

 public class IS_LC_REQUEST : CModelBaseOfIS_LC_REQUEST
    {
        public IS_LC_REQUEST();
        public string BENEFICIARY_ADDRESS { get; set; }
        public string BENEFICIARY_NAME { get; set; }
        public string BRANCH_ID { get; set; }
        public string PORT_OF_SHIPMENT { get; set; }
        public string REQUEST_DATE { get; set; }
        public string REQUEST_ID { get; set; }

    }

Actualizado:

var arrayOfObjects = IntBankProposal.EnquiryGetAllLcRequest();
var dt = DateTime.Now;
gvproposal.DataSource = arrayOfObjects.OrderBy(load => { if (DateTime.TryParse(load.REQUEST_DATE, out dt)) { return dt; } else { return DateTime.Now.AddYears(-100); } }).ToArray();
gvproposal.DataBind();

Puede usar LINQ para ordenar la colección que recibe de la llamada del servicio web. Como REQUEST_DATE es del tipo de cadena, debe convertirla a la fecha usando Date.Parse . Asegúrese de incluir este espacio de nombres en su código using System.Linq;

El código siguiente supone que la cadena REQUEST_DATE contiene valores de fecha válidos

var arrayOfObjects =  webservice.EnquiryGetAllLcRequest();
gvproposal.DataSource = arrayOfObjects.OrderBy(e => DateTime.Parse(e.REQUEST_DATE)).ToArray();
gvproposal.DataBind();

Si espera valores de fecha no válidos el REQUEST_DATE, utilice el siguiente fragmento de código:

var arrayOfObjects =  webservice.EnquiryGetAllLcRequest();
var dt = DateTime.MinValue;
DateTime dtNull = DateTime.Now.AddYears(-100);
gvproposal.DataSource = arrayOfObjects.OrderBy(e => { dt = DateTime.MinValue; if(DateTime.TryParse(e.REQUEST_DATE, out dt)) { return dt;} else { return dtNull;}}).ToArray();
gvproposal.DataBind();

Otro fragmento de código cuando las cadenas de fechas no válidas podrían estar allí es el siguiente. Prueba esto también

var arrayOfObjects =  webservice.EnquiryGetAllLcRequest();
var dt = DateTime.MinValue;
 gvproposal.DataSource = arrayOfObjects.OrderBy(e => { dt = DateTime.MinValue; DateTime.TryParse(e.REQUEST_DATE, out dt); return dt;}).ToArray();
gvproposal.DataBind();

Probé el código anterior en mi máquina usando un objeto como el que tienes y funcionó perfectamente, como puedes ver en la captura de pantalla belwo.


Si desea ordenar orden ascendente en la fecha de presentación. Hazlo, como sigue.

<asp:GridView ID="grdHeader" AllowSorting="true" AllowPaging="false" 
    AutoGenerateColumns="false" Width="780" runat="server"  OnSorting="grdHeader_OnSorting" EnableViewState="true">
    <Columns>
        <asp:BoundField DataField="REQUEST_DATE" HeaderText="Date" SortExpression="REQUEST_DATE" />

    </Columns>
</asp:GridView>

Por defecto, gridview es de orden ascendente. Para mayor información por favor visite. Clasificación GridView: SortDirection siempre Ascending





webforms