zoukankan      html  css  js  c++  java
  • sliverlight navigation 的问题

    公司最近在做一个项目, 由于是一家搜索引擎公司,为客户提供商业数据. DataGrid需要支持筛选,自定列,自定义列顺序,goback或前进需要保留客户的所有操作,可以非常方便的refresh data,导出到excel,自己控制显示和关闭进度条。所以自己开发了一个datagrid. 大致是用 datagrid+domaindatasource+datapager + busyIndictor. 这个datagrid做的很成功,马上要发布到产品中。 但在项目中 有下面几个需求

    1. CompanySummary 页面,当客户点击Company/Summary的按钮用来显示 GetCompanySumayView()数据,还要显示CompanySearch的数据。

    2.当其他地方做了修改能方便的refresh data.

    3.支持goback和goforth,并且要记住用户的所有操作和数据

    解决3我们把所有客户浏览的页面保存在内存里面, 当客户navigation的时候,我们对照内存里面的页面,如果已经存在,我们把已存在的页面展示给客户。 这样做的好处是简单,坏处是会浪费资源。还好页面不是很多,内存占用的少,这个方法还是蛮可行的。

    2使用我们自己开发的datagrid已经解决。

    1.的解决比较棘手。(navigation 不支持 自己goback到自己, 如果客户现在是显示search 结果的company summary界面 后退到或点击到显示GetCompanySumayView()数据 的页面时不会成功的)

    companysummary

    {

        companysummary(){//1}

        companysummary(string query, Parameter[] parameters){//2}

         NavigationTo(..){//3}

    }

    有时中方法

    1. //1,//2中load data.   冲menu click过来的调用 companysummary(), 从search过来的调用 companysummary(string query, Parameter[] parameters), 这样做有一个缺点是 每次浏览这个页面的时候 会调用两次ria service call.

    2.使用在NavigationTo中加载数据System.Uri(...).  System.Uri()调用 CompanySummary()生成 p1,这和我们内存中catech的和要显示的company summary p2 是两个不同实例。  系统只会调用p1.NavigationTo, 所以 p2根本就没有加载数据,p2.isbusy =true.  使用p2的原因是a.支持goback ,goforth,  b.从menu click 到 company summary 而不是search 

    3.直接使用 mainpage.contentframe.content=summarypage. 是可以实现只 调用construct一次,但有一个问题,ie记不住这个页面,goback,goforth 不到这个页面

    4.CompanySummary(queryName,parameters) + System.Uri(..)

  • 相关阅读:
    4.5计算机网络笔记
    3.29计算机网络笔记
    3.22计算机网络笔记
    3.15计算机网络笔记
    用int类型表示最大公倍数
    markdown入门
    learning by doing
    技术博客(初用markdown)。
    物联网PPT智能家居王思齐和陈由钧第10组
    第六次java作业
  • 原文地址:https://www.cnblogs.com/mjgb/p/1885734.html
Copyright © 2011-2022 走看看