• 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(..)

  • 相关阅读:
    mybatis多对多级联查询
    Mybatis--<![CDATA[ sql 语句 ]]>
    mybatis返回List<Map>
    jdbc读取数据库,表相关信息(含注释)
    再送一波干货,测试2000线程并发下同时查询1000万条数据库表及索引优化
    【selenium学习 -6】文件上传操作的两种方式
    【selenium学习 -5】selenium的鼠标操作
    【selenium学习 -3】selenium中的八种基础定位方式
    【selenium学习 -2】一个基本的测试流程的例子
    Python多线程(三):线程同步
  • 原文地址:https://www.cnblogs.com/mjgb/p/1885734.html
Copyright © 2020-2023  润新知