问题描述
我有一个主单列表,有258列,因为针对的客户比较多,所以列相对比较多,但是现在问题来了,首次加载时,这些列我是动态绑定上去的,结果在初始化列名时耗费3秒钟,请问有没有好的解决方案this.gvFmsBookingNote.DataSource=dt;#endregionDateTimedt1=DateTime.Now;#region设置列名this.gvFmsBookingNote.Columns["NoteIsPX"].HeaderText="拼箱";this.gvFmsBookingNote.Columns["NotePXNos"].HeaderText="拼箱委托单号";this.gvFmsBookingNote.Columns["ChargeInvoiceAmount"].HeaderText="应收款需开票总额";this.gvFmsBookingNote.Columns["PayInvoiceAmount"].HeaderText="应付款需开票总额";this.gvFmsBookingNote.Columns["InvoiceBalanceAmount"].HeaderText="应收/付款需开票差额";this.gvFmsBookingNote.Columns["IsChangeShipper"].HeaderText="多个发货人";this.gvFmsBookingNote.Columns["LoadRequest"].HeaderText="装货要求";this.gvFmsBookingNote.Columns["DeliveryRequest"].HeaderText="送货要求";this.gvFmsBookingNote.Columns["SaleManETA"].HeaderText="预报离港";this.gvFmsBookingNote.Columns["SaleManETD"].HeaderText="预报到港";this.gvFmsBookingNote.Columns["days_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["Notewk_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["Noteyy_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["months_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["HYF"].Visible=false;this.gvFmsBookingNote.Columns["HYFChecked"].Visible=false;this.gvFmsBookingNote.Columns["HyfUnChecked"].Visible=false;this.gvFmsBookingNote.Columns["wk"].Visible=false;this.gvFmsBookingNote.Columns["yy"].Visible=false;this.gvFmsBookingNote.Columns["Notewk"].Visible=false;this.gvFmsBookingNote.Columns["Noteyy"].Visible=false;this.gvFmsBookingNote.Columns["months"].Visible=false;this.gvFmsBookingNote.Columns["days"].Visible=false;this.gvFmsBookingNote.Columns["OrganizationCode"].Visible=false;this.gvFmsBookingNote.Columns["IsWX"].HeaderText="外协";this.gvFmsBookingNote.Columns["BlNos"].HeaderText="提/运单号";this.gvFmsBookingNote.Columns["CtnrNos"].HeaderText="箱号";this.gvFmsBookingNote.Columns["IsRoad"].Visible=false;this.gvFmsBookingNote.Columns["Status"].Visible=false;//this.gvFmsBookingNote.Columns["AbolisherName"].Visible=false;//this.gvFmsBookingNote.Columns["AbolishDate"].Visible=false;//this.gvFmsBookingNote.Columns["FbsAbolisherName"].Visible=false;//this.gvFmsBookingNote.Columns["FbsAbolishDate"].Visible=false;this.gvFmsBookingNote.Columns["IsCancel"].HeaderText="作废";this.gvFmsBookingNote.Columns["CancelUserName"].HeaderText="作废人";this.gvFmsBookingNote.Columns["CancelRemark"].HeaderText="作废原因";this.gvFmsBookingNote.Columns["CancelDate"].HeaderText="作废日期";this.gvFmsBookingNote.Columns["IsAudit_Booking"].HeaderText="订舱审核";this.gvFmsBookingNote.Columns["AuditUserName_Booking"].HeaderText="订舱审核人";this.gvFmsBookingNote.Columns["AuditDate_Booking"].HeaderText="订舱审核日期";this.gvFmsBookingNote.Columns["IsChangeConsignee"].HeaderText="多个收货人";this.gvFmsBookingNote.Columns["IsRoad"].HeaderText="公路运输";this.gvFmsBookingNote.Columns["CustomerAddress"].HeaderText="委托客户地址";this.gvFmsBookingNote.Columns["CustomerLinkMan"].HeaderText="委托客户联系人";this.gvFmsBookingNote.Columns["CustomerTel"].HeaderText="委托客户电话";if(SystemProfileCache.GetSystemProfileValue("CustomerCompanyName").Equals("海恒")){if(CanViewConsigneeLinkManTel&&CanViewShipperLinkManTel){this.gvFmsBookingNote.Columns["CustomerLinkMan"].HeaderText="委托客户联系人";this.gvFmsBookingNote.Columns["CustomerTel"].HeaderText="委托客户电话";}else{this.gvFmsBookingNote.Columns["CustomerLinkMan"].Visible=false;this.gvFmsBookingNote.Columns["CustomerTel"].Visible=false;}}this.gvFmsBookingNote.Columns["TaskStatus"].HeaderText="箱状态";this.gvFmsBookingNote.Columns["VesselCompanyName"].HeaderText="船公司";this.gvFmsBookingNote.Columns["Status"].HeaderText="状态";this.gvFmsBookingNote.Columns["IsSign"].HeaderText="客户签收";this.gvFmsBookingNote.Columns["CustomerShortName"].HeaderText="委托单位";this.gvFmsBookingNote.Columns["ShipperShortName"].HeaderText="发货单位";this.gvFmsBookingNote.Columns["ConsigneeShortName"].HeaderText="收货单位";this.gvFmsBookingNote.Columns["ForwarderAgentShortName"].HeaderText="代理人";this.gvFmsBookingNote.Columns["NotifyShortName"].HeaderText="通知人";this.gvFmsBookingNote.Columns["InsurerShortName"].HeaderText="保险公司";this.gvFmsBookingNote.Columns["POLPortCHIName"].HeaderText="装货港";this.gvFmsBookingNote.Columns["PODPortCHIName"].HeaderText="卸货港";this.gvFmsBookingNote.Columns["LoadAddress"].HeaderText="装货地址";this.gvFmsBookingNote.Columns["DeliveryAddress"].HeaderText="卸货地址";this.gvFmsBookingNote.Columns["LoadFeePlaceName"].HeaderText="装货地";this.gvFmsBookingNote.Columns["DeliveryFeePlaceName"].HeaderText="卸货地";this.gvFmsBookingNote.Columns["VesselName"].HeaderText="船名";this.gvFmsBookingNote.Columns["VoyName"].HeaderText="船次";this.gvFmsBookingNote.Columns["BookingNoteID"].Visible=false;this.gvFmsBookingNote.Columns["BillNo"].HeaderText="委托单号";this.gvFmsBookingNote.Columns["CustomerBillNo"].HeaderText="客户单号";this.gvFmsBookingNote.Columns["SalesManName"].HeaderText="业务员";this.gvFmsBookingNote.Columns["CanvassMode"].HeaderText="揽货方式";this.gvFmsBookingNote.Columns["DeliveryType"].HeaderText="运输条款";this.gvFmsBookingNote.Columns["PayMode"].HeaderText="付款方式";this.gvFmsBookingNote.Columns["LoadDate"].HeaderText="装货日期";this.gvFmsBookingNote.Columns["BigCategoryName"].HeaderText="货物分类";this.gvFmsBookingNote.Columns["IsRF"].HeaderText="是否冻柜";this.gvFmsBookingNote.Columns["IsDanger"].HeaderText="是否危险品";this.gvFmsBookingNote.Columns["IsInsure"].HeaderText="代买保险";this.gvFmsBookingNote.Columns["PlanDeliveryTime"].HeaderText="计划送货日期";this.gvFmsBookingNote.Columns["CreateUser"].HeaderText="受单人";this.gvFmsBookingNote.Columns["CreateTime"].HeaderText="受单日期";this.gvFmsBookingNote.Columns["ConfirmUser"].HeaderText="确认人";this.gvFmsBookingNote.Columns["ConfirmTime"].HeaderText="确认日期";this.gvFmsBookingNote.Columns["Remark"].HeaderText="备注";
解决方案
解决方案二:
此处略去类似代码#endregionDateTimedt2=DateTime.Now;TimeSpants=dt2-dt1;doubletotal=ts.TotalSeconds;
解决方案三:
设置列名应花不了多少时间吧,而是你数据原绑定花时间。
解决方案四:
256个列应该不都是有用的吧,只显示常用的,详细信息开新窗口,或者用List-Detail这种现实模式显示。上面list,选中下面Detail里显示详细信息。
解决方案五:
宝爸的方法推荐。200多列一张表挺吓人的,你能考虑重新设计设计吗
解决方案六:
什么需求搞那么多列,看的完么。分表吧如果1000个客户看来要搞1000个列呀。
解决方案七:
我想知道,这样的东西谁看
解决方案八:
根据不同的用户显示不同的列,200多列,谁需要看这么多啊!
解决方案九:
引用楼主u010537010的回复:
我有一个主单列表,有258列,因为针对的客户比较多,所以列相对比较多,但是现在问题来了,首次加载时,这些列我是动态绑定上去的,结果在初始化列名时耗费3秒钟,请问有没有好的解决方案this.gvFmsBookingNote.DataSource=dt;#endregionDateTimedt1=DateTime.Now;#region设置列名this.gvFmsBookingNote.Columns["NoteIsPX"].HeaderText="拼箱";this.gvFmsBookingNote.Columns["NotePXNos"].HeaderText="拼箱委托单号";this.gvFmsBookingNote.Columns["ChargeInvoiceAmount"].HeaderText="应收款需开票总额";this.gvFmsBookingNote.Columns["PayInvoiceAmount"].HeaderText="应付款需开票总额";this.gvFmsBookingNote.Columns["InvoiceBalanceAmount"].HeaderText="应收/付款需开票差额";this.gvFmsBookingNote.Columns["IsChangeShipper"].HeaderText="多个发货人";this.gvFmsBookingNote.Columns["LoadRequest"].HeaderText="装货要求";this.gvFmsBookingNote.Columns["DeliveryRequest"].HeaderText="送货要求";this.gvFmsBookingNote.Columns["SaleManETA"].HeaderText="预报离港";this.gvFmsBookingNote.Columns["SaleManETD"].HeaderText="预报到港";this.gvFmsBookingNote.Columns["days_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["Notewk_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["Noteyy_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["months_LoadDate"].Visible=false;this.gvFmsBookingNote.Columns["HYF"].Visible=false;this.gvFmsBookingNote.Columns["HYFChecked"].Visible=false;this.gvFmsBookingNote.Columns["HyfUnChecked"].Visible=false;this.gvFmsBookingNote.Columns["wk"].Visible=false;this.gvFmsBookingNote.Columns["yy"].Visible=false;this.gvFmsBookingNote.Columns["Notewk"].Visible=false;this.gvFmsBookingNote.Columns["Noteyy"].Visible=false;this.gvFmsBookingNote.Columns["months"].Visible=false;this.gvFmsBookingNote.Columns["days"].Visible=false;this.gvFmsBookingNote.Columns["OrganizationCode"].Visible=false;this.gvFmsBookingNote.Columns["IsWX"].HeaderText="外协";this.gvFmsBookingNote.Columns["BlNos"].HeaderText="提/运单号";this.gvFmsBookingNote.Columns["CtnrNos"].HeaderText="箱号";this.gvFmsBookingNote.Columns["IsRoad"].Visible=false;this.gvFmsBookingNote.Columns["Status"].Visible=false;//this.gvFmsBookingNote.Columns["AbolisherName"].Visible=false;//this.gvFmsBookingNote.Columns["AbolishDate"].Visible=false;//this.gvFmsBookingNote.Columns["FbsAbolisherName"].Visible=false;//this.gvFmsBookingNote.Columns["FbsAbolishDate"].Visible=false;this.gvFmsBookingNote.Columns["IsCancel"].HeaderText="作废";this.gvFmsBookingNote.Columns["CancelUserName"].HeaderText="作废人";this.gvFmsBookingNote.Columns["CancelRemark"].HeaderText="作废原因";this.gvFmsBookingNote.Columns["CancelDate"].HeaderText="作废日期";this.gvFmsBookingNote.Columns["IsAudit_Booking"].HeaderText="订舱审核";this.gvFmsBookingNote.Columns["AuditUserName_Booking"].HeaderText="订舱审核人";this.gvFmsBookingNote.Columns["AuditDate_Booking"].HeaderText="订舱审核日期";this.gvFmsBookingNote.Columns["IsChangeConsignee"].HeaderText="多个收货人";this.gvFmsBookingNote.Columns["IsRoad"].HeaderText="公路运输";this.gvFmsBookingNote.Columns["CustomerAddress"].HeaderText="委托客户地址";this.gvFmsBookingNote.Columns["CustomerLinkMan"].HeaderText="委托客户联系人";this.gvFmsBookingNote.Columns["CustomerTel"].HeaderText="委托客户电话";if(SystemProfileCache.GetSystemProfileValue("CustomerCompanyName").Equals("海恒")){if(CanViewConsigneeLinkManTel&&CanViewShipperLinkManTel){this.gvFmsBookingNote.Columns["CustomerLinkMan"].HeaderText="委托客户联系人";this.gvFmsBookingNote.Columns["CustomerTel"].HeaderText="委托客户电话";}else{this.gvFmsBookingNote.Columns["CustomerLinkMan"].Visible=false;this.gvFmsBookingNote.Columns["CustomerTel"].Visible=false;}}this.gvFmsBookingNote.Columns["TaskStatus"].HeaderText="箱状态";this.gvFmsBookingNote.Columns["VesselCompanyName"].HeaderText="船公司";this.gvFmsBookingNote.Columns["Status"].HeaderText="状态";this.gvFmsBookingNote.Columns["IsSign"].HeaderText="客户签收";this.gvFmsBookingNote.Columns["CustomerShortName"].HeaderText="委托单位";this.gvFmsBookingNote.Columns["ShipperShortName"].HeaderText="发货单位";this.gvFmsBookingNote.Columns["ConsigneeShortName"].HeaderText="收货单位";this.gvFmsBookingNote.Columns["ForwarderAgentShortName"].HeaderText="代理人";this.gvFmsBookingNote.Columns["NotifyShortName"].HeaderText="通知人";this.gvFmsBookingNote.Columns["InsurerShortName"].HeaderText="保险公司";this.gvFmsBookingNote.Columns["POLPortCHIName"].HeaderText="装货港";this.gvFmsBookingNote.Columns["PODPortCHIName"].HeaderText="卸货港";this.gvFmsBookingNote.Columns["LoadAddress"].HeaderText="装货地址";this.gvFmsBookingNote.Columns["DeliveryAddress"].HeaderText="卸货地址";this.gvFmsBookingNote.Columns["LoadFeePlaceName"].HeaderText="装货地";this.gvFmsBookingNote.Columns["DeliveryFeePlaceName"].HeaderText="卸货地";this.gvFmsBookingNote.Columns["VesselName"].HeaderText="船名";this.gvFmsBookingNote.Columns["VoyName"].HeaderText="船次";this.gvFmsBookingNote.Columns["BookingNoteID"].Visible=false;this.gvFmsBookingNote.Columns["BillNo"].HeaderText="委托单号";this.gvFmsBookingNote.Columns["CustomerBillNo"].HeaderText="客户单号";this.gvFmsBookingNote.Columns["SalesManName"].HeaderText="业务员";this.gvFmsBookingNote.Columns["CanvassMode"].HeaderText="揽货方式";this.gvFmsBookingNote.Columns["DeliveryType"].HeaderText="运输条款";this.gvFmsBookingNote.Columns["PayMode"].HeaderText="付款方式";this.gvFmsBookingNote.Columns["LoadDate"].HeaderText="装货日期";this.gvFmsBookingNote.Columns["BigCategoryName"].HeaderText="货物分类";this.gvFmsBookingNote.Columns["IsRF"].HeaderText="是否冻柜";this.gvFmsBookingNote.Columns["IsDanger"].HeaderText="是否危险品";this.gvFmsBookingNote.Columns["IsInsure"].HeaderText="代买保险";this.gvFmsBookingNote.Columns["PlanDeliveryTime"].HeaderText="计划送货日期";this.gvFmsBookingNote.Columns["CreateUser"].HeaderText="受单人";this.gvFmsBookingNote.Columns["CreateTime"].HeaderText="受单日期";this.gvFmsBookingNote.Columns["ConfirmUser"].HeaderText="确认人";this.gvFmsBookingNote.Columns["ConfirmTime"].HeaderText="确认日期";this.gvFmsBookingNote.Columns["Remark"].HeaderText="备注";
3楼的建议是正解,显示信息过多,滚动条那么长,拖来拖去用户体验非常不好,建议分类分级处理
解决方案十:
挑些重要的列显示,和客户协商下,不可能这多都要一开始显示,这样客户还要拖曳来看呢,也烦的,弄些其他的分类查看功能
解决方案十一:
如果你非要搞这么多,我也是醉了
解决方案十二:
你们不知道,我系统是有自定义列功能的,也就是说每个客户他可以设置他需要看的列,因为这个列表不是给一个客户用的,每个客户要求千差万别,而且这些列也不是一个表的,都是通过视图关联的。
解决方案十三:
引用11楼u010537010的回复:
你们不知道,我系统是有自定义列功能的,也就是说每个客户他可以设置他需要看的列,因为这个列表不是给一个客户用的,每个客户要求千差万别,而且这些列也不是一个表的,都是通过视图关联的。
你这种设计既费事又不好使,你把自己当作用户,你愿意用这个鬼东西么?把不同角色所需要的内容不负责任地简单合并在一起,还自以为是地实现一个自定义列功能,把这一切问题甩回给用户自己解决,这不叫做软件。
解决方案十四:
这么多列应该也看不清楚吧,你打印一下列生成与datasouce绑定的时间,看看哪一部分是性能瓶颈
解决方案十五:
显示256列,也是醉了,谁这么吃饱了没事做一列列看过去啊