惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Cyber Attacks, Cyber Crime and Cyber Security
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
T
Tailwind CSS Blog
Last Week in AI
Last Week in AI
博客园 - 【当耐特】
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园_首页
Jina AI
Jina AI
T
Troy Hunt's Blog
V2EX - 技术
V2EX - 技术
雷峰网
雷峰网
云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
V
V2EX
Google Online Security Blog
Google Online Security Blog
罗磊的独立博客
Attack and Defense Labs
Attack and Defense Labs
博客园 - 聂微东
G
Google Developers Blog
V
Visual Studio Blog
Security Latest
Security Latest
T
Tenable Blog
爱范儿
爱范儿
Know Your Adversary
Know Your Adversary
H
Heimdal Security Blog
博客园 - 司徒正美
K
Kaspersky official blog
The Last Watchdog
The Last Watchdog
酷 壳 – CoolShell
酷 壳 – CoolShell
PCI Perspectives
PCI Perspectives
T
The Exploit Database - CXSecurity.com
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
CERT Recently Published Vulnerability Notes
SecWiki News
SecWiki News
宝玉的分享
宝玉的分享
MongoDB | Blog
MongoDB | Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Martin Fowler
Martin Fowler
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Secure Thoughts
Cyberwarzone
Cyberwarzone
量子位
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Project Zero
Project Zero
Blog — PlanetScale
Blog — PlanetScale
L
LINUX DO - 最新话题
IT之家
IT之家

博客园 - 叶子绿了

freemarker显示含有html代码的内容 .net sql 防注入 httpmodule [转载]poi导出excel,可以自定义保存路径 jquery ajax 传递js对象到后台 Struts2下多文件的上传与下载 dwr框架 Oracle 9i中包含Connect by 子句的查询向Oracle 10g移植后运行时错误及解决方法 JQuery Uploadify 基于JSP的无刷新上传实例 写了个用jquery控制select只读(select选项可以供用户查看但不能改变初始选中值) C#之模态窗口关闭 repeater相同行合并 在Web站点中创建和使用Rss源(动态) silverlight xml查询 解决ASP.NET中Image控件不能自动刷新 解决UpdatePanel无法直接弹出窗口的问题 导入Excel数值读不到,找不到可安装的 ISAM错误! asp.net2.0 上传大容量文件第三方控件radupload 浏览器不能正常解析CSS代码的解决 ajax在用户注册中的应用,类似淘宝网
silverlight 3 数据绑定及分页
叶子绿了 · 2010-06-11 · via 博客园 - 叶子绿了

前台页面

代码

<StackPanel Orientation="Vertical">        
            
<data:DataGrid x:Name="dataGrid"  HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="4"   AutoGenerateColumns="False" HeadersVisibility="Column" GridLinesVisibility="Horizontal" RowBackground="Cornsilk" AlternatingRowBackground="LemonChiffon" RowHeight="30" IsReadOnly="True" CanUserResizeColumns="False">
                
<data:DataGrid.Columns>
                    
<data:DataGridTextColumn Header="标题"  Binding="{Binding Title}"  Width="350" ></data:DataGridTextColumn>
                    
<data:DataGridTextColumn Header="作者" Binding="{Binding Author}" Width="150" ></data:DataGridTextColumn>   
                
</data:DataGrid.Columns>
            
</data:DataGrid>
        
<data:DataPager x:Name="datapager1" Height="24" Margin="8,0,8,40" VerticalAlignment="Bottom" Background="#FFD7E2EE" FontSize="13.333" Width="304" PageIndexChanged="datapager1_PageIndexChanged"/></StackPanel>

后台页面代码:

代码

 int PageSize = 10;//设定分页大小
        List<int> itemCount = new List<int>();//用于DataPager的数据提供
        public DataBaseOperate()
        {
            InitializeComponent();
        }
private void UserControl_Loaded(object sender, RoutedEventArgs e)
        {
            BlogServiceSoapClient webClient 
= new BlogServiceSoapClient();            
            webClient.GetsimpleListAsync(
"",PageSize, 1);
            webClient.GetsimpleListCompleted
+=new EventHandler<GetsimpleListCompletedEventArgs>(webClient_GetsimpleListCompleted);
            GeneralDataPagerContent();
//生成DataPager的数据提供
        }
        
void webClient_GetsimpleListCompleted(object sender, GetsimpleListCompletedEventArgs e)
        {
            
if (e.Error == null)
            {
                dataGrid.ItemsSource 
= e.Result;
            }
        }
        
void GeneralDataPagerContent()
        {
            BlogServiceSoapClient webClient 
= new BlogServiceSoapClient();
            webClient.GetTotalPagersAsync(
"",PageSize);
            webClient.GetTotalPagersCompleted 
+=
            
new EventHandler<GetTotalPagersCompletedEventArgs>(webClient_GetTotalPagersCompleted);
        }
        
void webClient_GetTotalPagersCompleted(object sender, GetTotalPagersCompletedEventArgs e)
        {
            
int totalpagers = e.Result;
            
for (int i = 1; i <= totalpagers; i++) itemCount.Add(i);
            PagedCollectionView pcv 
= new PagedCollectionView(itemCount);
            pcv.PageSize 
= 1;
            datapager1.Source 
= pcv;

        }

void client_GetsimpleListCompleted(object sender, TerryLee.SilverlightDemo2.DataBaseOperateServiceReference.GetsimpleListCompletedEventArgs e)
        {
            
if (e.Error == null)
            {
                dataGrid.ItemsSource 
= e.Result;
            }
        }
private void datapager1_PageIndexChanged(object sender, EventArgs e)
        {
            BlogServiceSoapClient webClient 
= new BlogServiceSoapClient();
            webClient.GetsimpleListAsync(
"",PageSize, datapager1.PageIndex + 1);//索引值从0开始,所以要加1
            webClient.GetsimpleListCompleted += new EventHandler<GetsimpleListCompletedEventArgs>(webClient_GetsimpleListCompleted);//Binding(datapager1.PageIndex+2);
        }private void datapager1_PageIndexChanging(object sender, System.ComponentModel.CancelEventArgs e)
        {
            BlogServiceSoapClient webClient 
= new BlogServiceSoapClient();
            webClient.GetsimpleListAsync(
"", PageSize, datapager1.PageIndex + 1);//索引值从0开始,所以要加1
            webClient.GetsimpleListCompleted += new EventHandler<GetsimpleListCompletedEventArgs>(webClient_GetsimpleListCompleted);

        }

WebService里面有两个方法

代码

 [WebMethod]
        
public List<m_article> GetsimpleList(string strWhere, int PageSize, int CurrentPage)
        {
            StringBuilder strSql 
= new StringBuilder();
            strSql.Append(
"select  ");
            
if (PageSize != 0)
                strSql.Append(
" top " + PageSize);
            strSql.Append(
"  * ");
            strSql.Append(
" from  (");
            strSql.Append(
" SELECT ROW_NUMBER() OVER (ORDER BY publishdate desc) AS RowNo, ");

            strSql.Append(

" [BH],[topicbh],[Title],[Author],[PublishDate]");
            strSql.Append(
"  FROM J_Articles   ");
            
if (strWhere.Trim() != "")
            {
                strSql.Append(
" where " + strWhere);
            }

            strSql.Append(

" ) as T ");
            
if (PageSize != 0)
            {
                strSql.Append(
" where RowNo>");
                strSql.Append((CurrentPage 
- 1* PageSize);
            }

            DataTable dt 

= DbHelperSQL.Query(strSql.ToString()).Tables[0];

            m_article article;
            List

<m_article> articles = new List<m_article>();
            
foreach (DataRow row in dt.Rows)
            {
                article 
= new m_article();
                article.Title 
= row["title"].ToString();
                article.Author 
= row["author"].ToString();
                articles.Add(article);
            }
            
return articles;
        }
        [WebMethod]
//得到总分页数
        public int GetTotalPagers(string where,int PageSize)
        {
            
decimal count = 0;
            StringBuilder sql 
= new StringBuilder();
            sql.Append(
"select count(1)   from J_Articles   ");
            
if (where.Trim() != "")
            {
                sql.Append(
" where " + where);
            }
            
object obj = DbHelperSQL.GetSingle(sql.ToString());
            
if (obj != null)
                count 
= decimal.Parse(obj.ToString());
            
decimal a = count / PageSize;            
            
return  int.Parse( Math.Ceiling(a).ToString());     

        }