如何在网格中按日期升序?
How can I ascending by Date in a grid?
我正在通过 asp.net 网络表单中的网格制作搜索列表。
我正在使用网络服务加载网格。现在我怎样才能提升请求日期?
gvproposal.DataSource = webservice.EnquiryGetAllLcRequest();
gvproposal.DataBind();
这里我只是绑定了web服务,现在怎么把日期升序呢??
public IS_LC_REQUEST[] EnquiryGetAllLcRequest();
这是网络服务方法。
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
的OrderBy
方法
gvproposal.DataSource = webservice.EnquiryGetAllLcRequest().ToList().OrderBy(x=>x.REQUEST_DATE);
gvproposal.DataBind();
您可以使用 LINQ 对从 Web 服务调用收到的集合进行排序。
由于REQUEST_DATE
是字符串类型,需要用Date.Parse
转换为日期。确保在代码中包含此命名空间 using 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();
我在我的机器上使用与您拥有的对象类似的对象尝试了上面的代码,它运行良好,正如您在下面的屏幕截图中看到的那样。
设置AllowSorting
属性为真,添加OnSorting
事件到gridview。然后在OnSorting
事件中添加排序条件。您可以试试这个 reference 了解详情。
如果您想按提交日期升序排序。做,如下。
<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>
gridview默认是升序的。欲了解更多信息,请访问。
GridView sorting: SortDirection always Ascending
gvproposal.DataSource = webservice.EnquiryGetAllLcRequest();
gvproposal.DataBind();
这里我只是绑定了web服务,现在怎么把日期升序呢??
public IS_LC_REQUEST[] EnquiryGetAllLcRequest();
这是网络服务方法。
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
OrderBy
方法
gvproposal.DataSource = webservice.EnquiryGetAllLcRequest().ToList().OrderBy(x=>x.REQUEST_DATE);
gvproposal.DataBind();
您可以使用 LINQ 对从 Web 服务调用收到的集合进行排序。
由于REQUEST_DATE
是字符串类型,需要用Date.Parse
转换为日期。确保在代码中包含此命名空间 using 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();
我在我的机器上使用与您拥有的对象类似的对象尝试了上面的代码,它运行良好,正如您在下面的屏幕截图中看到的那样。
设置AllowSorting
属性为真,添加OnSorting
事件到gridview。然后在OnSorting
事件中添加排序条件。您可以试试这个 reference 了解详情。
如果您想按提交日期升序排序。做,如下。
<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>
gridview默认是升序的。欲了解更多信息,请访问。 GridView sorting: SortDirection always Ascending