zoukankan      html  css  js  c++  java
  • silverlight 3 数据绑定及分页

    前台页面
    代码
    <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());     

            }
  • 相关阅读:
    [Web] 被遗忘的知识点 XHTML
    [项目实践进阶篇] Android 项目中使用Ant + Groovy能干什么?
    使用Ant,第1部分:将Ant脚本引入Java项目
    [Web] 被遗忘的知识点 JavaScript加载管理最佳实践
    [Web] 被遗忘的知识点 iFrames(HTML)过时了没有?
    Android ProGuard
    stream.js
    GUID(全球唯一标识符)
    解析算术表达式
    LCG(linear congruential generator)伪随机数生成器
  • 原文地址:https://www.cnblogs.com/luyesql/p/1756535.html
Copyright © 2011-2022 走看看