tag route net for asp asp.net date datetime webforms

asp.net - route - ¿Cómo puedo ascender por fecha en una grilla?



select asp-for asp-items (4)

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.


Utilice el método linq de linq

gvproposal.DataSource = webservice.EnquiryGetAllLcRequest().ToList().OrderBy(x=>x.REQUEST_DATE); gvproposal.DataBind();


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