当前位置: 首页 > news >正文

郑州网站关键网页浏览器主要通过ftp协议

郑州网站关键,网页浏览器主要通过ftp协议,网站开发经验教训,品牌设计培训silverlight并没有提供现成的分页控件#xff0c;百度了一圈#xff0c;也没有发现aspx中好用的类似AspNetPager成熟控件#xff0c;网上现有的一些分页代码#xff0c;很多也是基于1.0版本的#xff0c;silverlight2.0的并不多#xff0c;自个儿琢磨了一下#xff0c;发…silverlight并没有提供现成的分页控件百度了一圈也没有发现aspx中好用的类似AspNetPager成熟控件网上现有的一些分页代码很多也是基于1.0版本的silverlight2.0的并不多自个儿琢磨了一下发现自己弄一个也并非难事思路和主要代码分享如下: 1.通用的“海量”数据分页存储过程在做aspx开发时我已经用存储过程分页多年这个东东是通用的(不管前端用什么语言来做)而且性能也不错所以这里就直接套过来用了百度一下分页存储过程会有N多版本这里也给出我自己写的一个版本(仅适用于sqlserver 2005及以上版本) 分页存储过程-- -- Author:        杨俊明-菩提树下的杨过-- Create date: 2006-11-05-- Description:    高效分页存储过程仅适用于Sql2005-- Notes:        排序字段强烈建议建索引-- CREATE Procedure [dbo].[up_Page2005]  TableName varchar(500),        --表名 Fields nvarchar(MAX)  *,    --字段名(全部字段为*) OrderField nvarchar(MAX),        --排序字段(必须!支持多字段) sqlWhere nvarchar(MAX)  Null,--条件语句(不用加where) pageSize int,                    --每页多少条记录 pageIndex int  1 ,            --指定当前为第几页 TotalPage int output            --返回总页数 asbegin    Begin Tran --开始事务    Declare sql nvarchar(MAX);    Declare totalRecord int;        --计算总记录数             if (SqlWhere or sqlWhereNULL)        set sql  select totalRecord  count(*) from   TableName    else        set sql  select totalRecord  count(*) from   TableName   where   sqlWhere        EXEC sp_executesql sql,NtotalRecord int OUTPUT,totalRecord OUTPUT--计算总记录数                --计算总页数    select TotalPageCEILING((totalRecord0.0)/PageSize)    if (SqlWhere or sqlWhereNULL)        set sql  Select * FROM (select ROW_NUMBER() Over(order by   OrderField  ) as RowId,  Fields   from   TableName   with (nolock)     else        set sql  Select * FROM (select ROW_NUMBER() Over(order by   OrderField  ) as RowId,  Fields   from   TableName   with (nolock) where   SqlWhere                    --处理页数超出范围情况    if PageIndex0         Set pageIndex  1        if pageIndexTotalPage        Set pageIndex  TotalPage     --处理开始点和结束点    Declare StartRecord int    Declare EndRecord int        set StartRecord  (pageIndex-1)*PageSize  1    set EndRecord  StartRecord  pageSize - 1    --继续合成sql语句    set Sql  Sql  ) as   TableName   where RowId between   Convert(varchar(50),StartRecord)   and    Convert(varchar(50),EndRecord)    print sql ;    Exec(Sql)    ---------------------------------------------------    If Error  0      Begin        RollBack Tran        Return -1      End    Else      Begin        Commit Tran        Return totalRecord ---返回记录总数      Endend    Code-- -- Author:        杨俊明-菩提树下的杨过-- Create date: 2006-11-05-- Description:    高效分页存储过程仅返回总页数和总记录数仅适用于Sql2005-- Notes:        排序字段强烈建议建索引-- CREATE Procedure [dbo].[up_Page2005_Statistic]  TableName varchar(500),        --表名 Fields nvarchar(MAX)  *,    --字段名(全部字段为*) OrderField nvarchar(MAX),        --排序字段(必须!支持多字段) sqlWhere nvarchar(MAX)  Null,--条件语句(不用加where) pageSize int,                    --每页多少条记录 pageIndex int  1 ,            --指定当前为第几页 TotalPage int output            --返回总页数 asbegin       Declare sql nvarchar(MAX);    Declare totalRecord int;        --计算总记录数             if (SqlWhere or sqlWhereNULL)        set sql  select totalRecord  count(*) from   TableName    else        set sql  select totalRecord  count(*) from   TableName   where   sqlWhere        EXEC sp_executesql sql,NtotalRecord int OUTPUT,totalRecord OUTPUT--计算总记录数                --计算总页数    select TotalPageCEILING((totalRecord0.0)/PageSize)           print TotalRecord  Convert(nvarchar(50),totalRecord);    print TotalPage  Convert(nvarchar(50),totalPage);    Return totalRecord ---返回记录总数end   注:第二个是直接在第一个基础上简化得来的仅返回总页数和总记录数方便某些不需要返回实体数据仅需要知道总页数和总记录数的特殊情况调用 2.利用wcf直接或间接调用存储过程返回json数据 wcf能返回json数据已经不是什么新鲜事儿了这里就不多说了贴出主要代码(直接拿我以前封装好的工具库中的一个方法示例一下大家知道意思就可以了)  Code/// summary        /// 调用分页存储过程返回Json数据        /// /summary        /// param namepTable/param        /// param namepWhere/param        /// param namepFields/param        /// param namepOrder/param        /// param namepPageSize/param        /// param namepPageIndex/param        /// param namepTotalPage/param        /// param namepTotalRecord/param        /// returns/returns        [WebInvoke(Method  *, ResponseFormat  WebMessageFormat.Json, UriTemplate  SelectPageData?pTable{pTable}pWhere{pWhere}pFields{pFields}pOrder{pOrder}pPageSize{pPageSize}pPageIndex{pPageIndex}pTotalPage{pTotalPage}pTotalRecord{pTotalRecord})]        [OperationContract]        public Stream SelectPageData(string pTable, string pWhere, string pFields, string pOrder, int pPageSize,int pPageIndex,int pTotalPage,int pTotalRecord)        {                        return GetStream(GetJsonData(Database.GetDataTableForPage(pTable,pFields,pOrder,pWhere,pPageSize,pPageIndex,pTotalPage,pTotalRecord)));        }        /// summary        /// 调用分页存储过程返回总页数和总记录数        /// /summary        /// param namepTable/param        /// param namepWhere/param        /// param namepFields/param        /// param namepOrder/param        /// param namepPageSize/param        /// param namepPageIndex/param        /// param namepTotalPage/param        /// param namepTotalRecord/param        /// returns/returns        [WebInvoke(Method  *, ResponseFormat  WebMessageFormat.Json, UriTemplate  SelectPageDataStatistic?pTable{pTable}pWhere{pWhere}pFields{pFields}pOrder{pOrder}pPageSize{pPageSize}pPageIndex{pPageIndex}pTotalPage{pTotalPage}pTotalRecord{pTotalRecord})]        [OperationContract]        public Stream SelectPageDataStatistic(string pTable, string pWhere, string pFields, string pOrder, int pPageSize, int pPageIndex, int pTotalPage, int pTotalRecord)        {           Database.GetTotalPageAndTotalRecordForPage(pTable, pFields, pOrder, pWhere, pPageSize, pPageIndex, out pTotalPage,out pTotalRecord);           string _Result  {TotalPage:  pTotalPage.ToString()  ,RecordCount:  pTotalRecord  };           return GetStream(_Result);        }  其中有二个方法GetStream和GetJsonData主要用于将字符串转换为流以及将格式化Json字符串  Codeprivate Stream GetStream(string str)        {            MemoryStream ms  new MemoryStream();            StreamWriter sw  new StreamWriter(ms);            sw.AutoFlush  true;            sw.Write(str);            ms.Position  0;            WebOperationContext.Current.OutgoingResponse.ContentType  text/plain;            return ms;        }        public static string GetJsonData(DataTable dt)        {            string _Result  Utils.CreateJsonParameters(dt);//CreateJsonParameters是我工具库里的一个方法用于将DataTable转化为json字符串            if (_Result.IsNullStr())            {                _Result  [{}];            }            else            {                if (_Result.StartsWith({ \Head\:[))                {                    _Result  _Result.Replace({ \Head\:[, [);                }                if (_Result.EndsWith(]}))                 {                    _Result  _Result.Trim(});                }            }                       return _Result;        }   3.前面二步弄完了基本上就可以动手写silverlight代码了 xaml前端文件: CodeUserControl       xmlns:basicsclr-namespace:System.Windows.Controls;assemblySystem.Windows.Controls    xmlns:dataclr-namespace:System.Windows.Controls;assemblySystem.Windows.Controls.Data      x:ClassWcfTest.DataGrid    xmlnshttp://schemas.microsoft.com/winfx/2006/xaml/presentation     xmlns:xhttp://schemas.microsoft.com/winfx/2006/xaml            Grid x:NameLayoutRoot BackgroundWhite ShowGridLinesFalse        Grid.RowDefinitions            RowDefinition                            /RowDefinition            RowDefinition Height25            /RowDefinition        /Grid.RowDefinitions        Grid.ColumnDefinitions            ColumnDefinition                            /ColumnDefinition            ColumnDefinition            /ColumnDefinition        /Grid.ColumnDefinitions                data:DataGrid x:Namedg AutoGenerateColumnsFalse Grid.Column0 Grid.Row0 Grid.ColumnSpan2            data:DataGrid.Columns                data:DataGridTextColumn HeaderF_ID                Binding{Binding F_ID} /                data:DataGridTextColumn HeaderF_ClassName                 Binding{Binding F_ClassName} /                data:DataGridTextColumn HeaderF_RootId                 Binding{Binding F_RootId} /                data:DataGridTextColumn HeaderF_Depth                 Binding{Binding F_Depth} /                data:DataGridTextColumn HeaderF_Type                 Binding{Binding F_Type} /                            /data:DataGrid.Columns        /data:DataGrid                TextBlock x:NametxtStat Text共有X条记录第X页/共X页X/每页 Grid.Row1 Grid.Column0 VerticalAlignmentCenter Margin5,0,0,0 /TextBlock        StackPanel Grid.Column1 Grid.Row1 HorizontalAlignmentRight OrientationHorizontal VerticalAlignmentCenter Height22            Button x:NamebtnFirst Content首页 ClickbtnFirst_Click /Button            Button x:NamebtnPrev Content上页 Margin5,0,0,0 ClickbtnPrev_Click/Button            Button x:NamebtnNext Content下页 Margin5,0,0,0 ClickbtnNext_Click/Button            Button x:NamebtnLast Content末页 Margin5,0,0,0 ClickbtnLast_Click /Button            TextBox x:NametxtPageIndex Text1 Margin5,0,0,0 Width30 KeyUptxtPageIndex_KeyUp/TextBox            Button x:NamebtnPageGo ContentGo Margin5,0,5,0 ClickbtnPageGo_Click/Button        /StackPanel    /Grid/UserControl   讲解一下:用Grid布局先分上下二行第一行放一个DataGrid控件(silverlight2新增的控件!),第二行分二列左列显示统计信息右列显示翻页按钮  后端cs代码:  Codeusing System;using System.Collections.Generic;using System.Json;using System.Net;using System.Windows.Controls;using System.Windows.Media;using JIMMY.TOOLS.Silverlight;namespace WcfTest{    public partial class DataGrid : UserControl    {        protected string pTable  , pWhere  , pFields  , pOrderField  , pBaseUri  http://localhost:7055/Demo.svc/;        protected int pPageSize  10, pPageIndex  1, pTotalPage  0, pTotalRecord  0;        public DataGrid()        {            InitializeComponent();            #region 初始化查询参数            pTable  T_Class;            //pWhere  F_Typeplace And F_Depth0;            pWhere  ;            pFields  F_ID,F_ClassName,F_Depth,F_RootId,F_Type;            pOrderField  F_RootId;                        #endregion             //开始查询            LoadData();            LoadDataStatistic();        }        /// summary        /// 加载分页数据        /// /summary        void LoadData()        {                       Uri serviceUri  new Uri(pBaseUri  SelectPageData?pTable  pTable.UrlEncode()  pWhere  pWhere.UrlEncode()  pFields  pFields.UrlEncode()  pOrder  pOrderField.UrlEncode()  pPageSize  pPageSize.ToString().UrlEncode()  pPageIndex  pPageIndex.ToString().UrlEncode()  pTotalPage  pTotalPage.ToString().UrlEncode()  pTotalRecord  pTotalRecord.ToString().UrlEncode());            WebClient downloader  new WebClient();            downloader.OpenReadCompleted  new OpenReadCompletedEventHandler(LoadDataCompleted);            downloader.OpenReadAsync(serviceUri);            txtStat.Text  数据加载中;            txtStat.Foreground  new SolidColorBrush(Color.FromArgb(255, 255, 0, 0));        }        /// summary        /// 加载分页数据的回调函数        /// /summary        /// param namesender/param        /// param namee/param        void LoadDataCompleted(object sender, OpenReadCompletedEventArgs e)        {            if (e.Error  null)            {                try                {                    JsonArray _Arr  (JsonArray)JsonArray.Load(e.Result);                    ListData _List  new ListData();                    for (int i  0; i  _Arr.Count; i)                    {                        _List.Add(new Data() { F_ClassName  _Arr[i][F_ClassName], F_Depth  int.Parse(_Arr[i][F_Depth]), F_ID  new Guid(_Arr[i][F_ID]), F_RootId  int.Parse(_Arr[i][F_RootId]), F_Type  _Arr[i][F_Type] });                    }                    dg.ItemsSource  _List;                }                catch (Exception ex)                {                }            }            else            {            }        }        /// summary        /// 加载数据的总页数/总记录条数        /// /summary        void LoadDataStatistic()        {            Uri serviceUri  new Uri(pBaseUri  SelectPageDataStatistic?pTable  pTable.UrlEncode()  pWhere  pWhere.UrlEncode()  pFields  pFields.UrlEncode()  pOrder  pOrderField.UrlEncode()  pPageSize  pPageSize.ToString().UrlEncode()  pPageIndex  pPageIndex.ToString().UrlEncode()  pTotalPage  pTotalPage.ToString().UrlEncode()  pTotalRecord  pTotalRecord.ToString().UrlEncode());            WebClient downloader  new WebClient();            downloader.OpenReadCompleted  new OpenReadCompletedEventHandler(LoadDataStatisticCompleted);            downloader.OpenReadAsync(serviceUri);        }        /// summary        /// 加载数据的总页数/总记录条数--回调函数        /// /summary        /// param namesender/param        /// param namee/param        void LoadDataStatisticCompleted(object sender, OpenReadCompletedEventArgs e)        {            if (e.Error  null)            {                try                {                    JsonValue _json  JsonObject.Load(e.Result);                                      pTotalPage  int.Parse(_json[TotalPage]);                    pTotalRecord  int.Parse(_json[RecordCount]);                    txtStat.Text  共有  pTotalRecord  条记录第  pPageIndex.ToString()  页/共  pTotalPage  页  pPageSize.ToString()  /每页;                    txtPageIndex.Text  pPageIndex.ToString();                    txtStat.Foreground  new SolidColorBrush(Color.FromArgb(255, 0, 0, 0));                }                catch (Exception ex)                {                }            }            else            {            }        }        /// summary        /// 上页        /// /summary        /// param namesender/param        /// param namee/param        private void btnPrev_Click(object sender, System.Windows.RoutedEventArgs e)        {            pPageIndex  pPageIndex  1 ? 1 : pPageIndex - 1;            LoadData();            LoadDataStatistic();        }        /// summary        /// 下页        /// /summary        /// param namesender/param        /// param namee/param        private void btnNext_Click(object sender, System.Windows.RoutedEventArgs e)        {            pPageIndex  pPageIndex  pTotalPage ? pTotalPage : pPageIndex  1;            LoadData();            LoadDataStatistic();        }        /// summary        /// 首页        /// /summary        /// param namesender/param        /// param namee/param        private void btnFirst_Click(object sender, System.Windows.RoutedEventArgs e)        {            pPageIndex  1;            LoadData();            LoadDataStatistic();        }        /// summary        /// 末页        /// /summary        /// param namesender/param        /// param namee/param        private void btnLast_Click(object sender, System.Windows.RoutedEventArgs e)        {            pPageIndex  pTotalPage;            LoadData();            LoadDataStatistic();        }        /// summary        /// 跳转到指定页        /// /summary        /// param namesender/param        /// param namee/param        private void btnPageGo_Click(object sender, System.Windows.RoutedEventArgs e)        {            LoadPageIndexData();        }        private void LoadPageIndexData()         {            int _currentPageIndex  1;            if (!int.TryParse(txtPageIndex.Text, out _currentPageIndex))            {                txtPageIndex.Text  _currentPageIndex.ToString();            }            if (_currentPageIndex  pTotalPage)            {                _currentPageIndex  pTotalPage;                txtPageIndex.Text  _currentPageIndex.ToString();            }            if (_currentPageIndex  1)            {                _currentPageIndex  1;                txtPageIndex.Text  _currentPageIndex.ToString();            }            pPageIndex  _currentPageIndex;            LoadData();            LoadDataStatistic();        }        /// summary        /// 输入页数回车后查询指定页数据        /// /summary        /// param namesender/param        /// param namee/param        private void txtPageIndex_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)        {            if (e.Key  System.Windows.Input.Key.Enter)             {                LoadPageIndexData();            }        }    }    /// summary    /// 返回数据的类    /// /summary    public class Data    {        public Guid F_ID { get; set; }        public string F_ClassName { get; set; }        public int F_RootId { get; set; }        public int F_Depth { get; set; }        public string F_Type { get; set; }    }     }   主要思路:定义一组变量变于保存查询参数(包括当前第几页每页多少条记录之类)然后利用WebClient访问wcf将json数据download回来成功后解析为json对象再转化为强类型的ListData最后绑定完事 运行效果图: 转载于:https://www.cnblogs.com/yjmyzz/archive/2009/03/02/1401622.html
http://www.yutouwan.com/news/306233/

相关文章:

  • wix做网站手机乱了宿州网站公司
  • gta5网站显示建设中做ui设计工资一般多少
  • 怎样查看网站服务商房地产销售赚钱吗
  • 网站运营与建设 教学大纲企业网站托管
  • 以春天为主题的网站建设资源开封网络推广哪家好
  • 在线做数据图的网站有哪些农业网站建设方案 ppt模板
  • 网站界面风格网站建设需求单
  • 太原市住房和城乡建设局的网站如何做镜像网站
  • 深圳网站建设培训学校和君设计专业网站建设公司
  • 建设一个怎样的自己的网站如何网站建设
  • vs2008做html5网站阜新市项目建设网站
  • 网站更换服务器要重新备案吗h5游戏排行榜前十名
  • 简述电子政务网站设计的技术网站前端包括哪些
  • 临沂制作网站多少钱wordpress 图标插件
  • 网站怎么在工信部备案信息查询石家庄企业商城版网站建设
  • 免费asp网站模板格朗图手表网站
  • 做国外的营销的网站儿童编程哪家培训机构好
  • 成都网站建设 常凡云好网站开发
  • 网站正在建设中 页面产品做推广都有那些网站
  • 网站所有权问题图文消息点击进去是自己的网站
  • wordpress post slug百度小程序关键词优化
  • 网站制作企业有哪些公司淘宝网页html模板代码
  • jsp网站开发技巧济南电商培训基地
  • 海南中小企业网站建设民治做网站多少钱
  • 甘肃省城乡城乡建设厅网站宁波网站门户设计
  • 做彩票网站需要什么青阳做网站
  • 可以做网站开个写手公司环保网站模板代码
  • 带数据库网站模板花卉网站建设策划
  • 需要网站建设的是哪一类人网站 建设原则
  • 打车网站开发网站建设的公司有哪些