加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – 如何在网格中按日期升序?

发布时间:2020-12-16 06:39:42 所属栏目:asp.Net 来源:网络整理
导读:我正在通过asp.net web表单中的网格创建搜索列表. 我正在使用Web服务来加载网格.现在我如何提升请求日期? gvproposal.DataSource = webservice.EnquiryGetAllLcRequest(); gvproposal.DataBind(); 我现在简单地绑定Web服务如何提升日期? public IS_LC_REQU

enter image description here

我正在通过asp.net web表单中的网格创建搜索列表.
我正在使用Web服务来加载网格.现在我如何提升请求日期?

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

我现在简单地绑定Web服务如何提升日期?

public IS_LC_REQUEST[] EnquiryGetAllLcRequest();

这是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; }

    }

更新:

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();

解决方法

您可以使用LINQ对从Web服务调用收到的集合进行排序.
由于REQUEST_DATE是字符串类型,因此您需要使用Date.Parse将其转换为日期.确保使用System.Linq在代码中包含此命名空间;

下面的代码假定REQUEST_DATE字符串包含有效的日期值

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

如果您希望REQUEST_DATE中的日期值无效,请使用下面的代码段

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();

无效日期字符串可能存在的另一个代码段如下所示.也请尝试此操作.

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();

我在我的机器上尝试了上面的代码,使用了一个类似于你拥有的对象,它可以完美地工作,就像你在屏幕截图中看到的那样.

Sort on Object's Date Property for Array of Objects using LINQ

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读