datagrid分頁,排序,跨頁多選。
 datagrid分頁,排序,跨頁多選。可以分頁後還是排序的。
如果大家測出什麼bug,請留言,大家一起討論。
如果大家有什麼別的好文章請貼出聯接共享。
好的文章待續ing。
  1 using System;
using System;
2 using System.Collections;
using System.Collections;
3 using System.ComponentModel;
using System.ComponentModel;
4 using System.Data;
using System.Data;
5 using System.Drawing;
using System.Drawing;
6 using System.Web;
using System.Web;
7 using System.Web.SessionState;
using System.Web.SessionState;
8 using System.Web.UI;
using System.Web.UI;
9 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
10 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
11 using System.Xml;
using System.Xml;
12 using System.Xml.XPath;
using System.Xml.XPath;
13 using System.Text;
using System.Text;
14
15 namespace WebApplication4
namespace WebApplication4
16 {
{
17 /// <summary>
    /// <summary>
18 /// WebForm1 的摘要描述。
    /// WebForm1 的摘要描述。
19 /// </summary>
    /// </summary>
20 public class WebForm1 : System.Web.UI.Page
    public class WebForm1 : System.Web.UI.Page
21 {
    {
22 protected System.Web.UI.HtmlControls.HtmlInputHidden hidselectindex;
        protected System.Web.UI.HtmlControls.HtmlInputHidden hidselectindex;
23 protected System.Web.UI.WebControls.Label Label1;
        protected System.Web.UI.WebControls.Label Label1;
24 protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Button Button1;
25 protected System.Web.UI.WebControls.Label SortOrder;
        protected System.Web.UI.WebControls.Label SortOrder;
26 protected System.Web.UI.WebControls.Label RequestedPage;
        protected System.Web.UI.WebControls.Label RequestedPage;
27 protected System.Web.UI.WebControls.DataGrid DataGrid1;
        protected System.Web.UI.WebControls.DataGrid DataGrid1;
28 
    
29 private void Page_Load(object sender, System.EventArgs e)
        private void Page_Load(object sender, System.EventArgs e)
30 {
        {
31 // 在這裡放置使用者程式碼以初始化網頁
            // 在這裡放置使用者程式碼以初始化網頁
32 if(!Page.IsPostBack)
            if(!Page.IsPostBack)
33 {
            {
34 SortOrder.Text = "Name";
                SortOrder.Text = "Name";
35 this.RequestedPage.Text="0";
                this.RequestedPage.Text="0";
36
37 Bind();
                Bind();
38 }
            }
39 select();
            select();
40 //            add();
//            add();
41 }
        }
42
43 Web Form 設計工具產生的程式碼
        Web Form 設計工具產生的程式碼
67 private  void Bind()
        private  void Bind()
68 {
        {
69 DataSet ds=new DataSet();
            DataSet ds=new DataSet();
70 ds.ReadXml(Server.MapPath("user.xml"));
            ds.ReadXml(Server.MapPath("user.xml"));
71 DataView dv=new DataView();
            DataView dv=new DataView();
72 dv=ds.Tables[0].DefaultView;
            dv=ds.Tables[0].DefaultView;
73 this.DataGrid1.DataSource=ds.Tables[0].DefaultView;
            this.DataGrid1.DataSource=ds.Tables[0].DefaultView;
74 if(Convert.ToInt32(this.RequestedPage.Text)>=Convert.ToInt32(ds.Tables[0].Rows.Count/this.DataGrid1.PageSize))
            if(Convert.ToInt32(this.RequestedPage.Text)>=Convert.ToInt32(ds.Tables[0].Rows.Count/this.DataGrid1.PageSize))
75 RequestedPage.Text = "0";
                 RequestedPage.Text = "0";
76 dv.Sort=SortOrder.Text;
            dv.Sort=SortOrder.Text;
77 this.DataGrid1.CurrentPageIndex=Convert.ToInt32(this.RequestedPage.Text);
            this.DataGrid1.CurrentPageIndex=Convert.ToInt32(this.RequestedPage.Text);
78 this.DataGrid1.DataBind();
            this.DataGrid1.DataBind();
79 select();
            select();
80 //            add();
//            add();
81 }
        }
82
83 private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
        private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
84 {
        {
85 this.RequestedPage.Text=e.NewPageIndex.ToString();
            this.RequestedPage.Text=e.NewPageIndex.ToString();
86 Bind();
            Bind();
87 }
        }
88
89
90 private void select()
        private void select()
91 {
        {    
92 foreach ( DataGridItem item in this.DataGrid1.Controls[0].Controls)
            foreach ( DataGridItem item in this.DataGrid1.Controls[0].Controls) 
93 {
            { 
94 if (item.ItemType == ListItemType.Header)
                if (item.ItemType == ListItemType.Header) 
95 {
                { 
96 
                    
97 CheckBox CheckBox1=(CheckBox)item.FindControl("CheckBox1");
                    CheckBox CheckBox1=(CheckBox)item.FindControl("CheckBox1"); 
98 System.Text.StringBuilder strscript = new System.Text.StringBuilder("<script language='javascript'> \n");
                    System.Text.StringBuilder strscript = new System.Text.StringBuilder("<script language='javascript'> \n"); 
99 strscript.Append(" function checkstatus() { \n");
                    strscript.Append(" function checkstatus() { \n"); 
100 strscript.Append(" var ball = true; \n");
                    strscript.Append(" var ball = true; \n"); 
101 strscript.Append(" ball = document.all('" + CheckBox1.ClientID + "').checked; \n");
                    strscript.Append(" ball = document.all('" + CheckBox1.ClientID + "').checked; \n"); 
102
103 for(int i=0; i<this.DataGrid1.Items.Count ; i++)
                    for(int i=0; i<this.DataGrid1.Items.Count ; i++) 
104 {
                    { 
105 strscript.Append(" document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "').checked = ball; \n");
                        strscript.Append(" document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "').checked = ball; \n");
106 strscript.Append(" AddRemoveValues(document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "')); \n");
                        strscript.Append(" AddRemoveValues(document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "')); \n");
107 }
                    } 
108 strscript.Append(" } \n");
                    strscript.Append(" } \n"); 
109 strscript.Append("</script> \n");
                    strscript.Append("</script> \n"); 
110 if(!Page.IsClientScriptBlockRegistered("checkstatus"))
                    if(!Page.IsClientScriptBlockRegistered("checkstatus")) 
111 Page.RegisterClientScriptBlock("checkstatus",strscript.ToString());
                        Page.RegisterClientScriptBlock("checkstatus",strscript.ToString()); 
112 CheckBox1.Attributes.Add("onclick","checkstatus()");
                    CheckBox1.Attributes.Add("onclick","checkstatus()"); 
113 return;
                    return; 
114 }
                } 
115 }
            }
116 }
        }
117
118 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
119 {
        {
120 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
121 {
            {
122 if(hidselectindex.Value.IndexOf(e.Item.Cells[1].Text) >= 0 )
                if(hidselectindex.Value.IndexOf(e.Item.Cells[1].Text) >= 0 )
123 {
                {
124 HtmlInputCheckBox CheckBox2 = (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("CheckBox2"));
                    HtmlInputCheckBox CheckBox2 = (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("CheckBox2"));
125 CheckBox2.Checked = true;
                    CheckBox2.Checked = true;
126 }
                }
127 }
            }
128
129 }
        }
130
131 private void Button1_Click(object sender, System.EventArgs e)
        private void Button1_Click(object sender, System.EventArgs e)
132 {
        {
133 Label1.Text = hidselectindex.Value.Replace(",","<li>");
            Label1.Text = hidselectindex.Value.Replace(",","<li>");
134
135 }
        }
136
137 private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
        private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
138 {
        {
139 if(SortOrder.Text.Trim()==e.SortExpression.Trim())
         if(SortOrder.Text.Trim()==e.SortExpression.Trim())
140 SortOrder.Text = e.SortExpression.Trim() + " desc";
                SortOrder.Text = e.SortExpression.Trim() + " desc";
141 else
        else
142 SortOrder.Text = e.SortExpression.Trim();
            SortOrder.Text = e.SortExpression.Trim();
143 Bind();
            Bind();
144
145 }
        }
146
147 
        
148
149 }
    }
150 }
}
151
原代碼: using System;
using System;2
 using System.Collections;
using System.Collections;3
 using System.ComponentModel;
using System.ComponentModel;4
 using System.Data;
using System.Data;5
 using System.Drawing;
using System.Drawing;6
 using System.Web;
using System.Web;7
 using System.Web.SessionState;
using System.Web.SessionState;8
 using System.Web.UI;
using System.Web.UI;9
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;10
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;11
 using System.Xml;
using System.Xml;12
 using System.Xml.XPath;
using System.Xml.XPath;13
 using System.Text;
using System.Text;14

15
 namespace WebApplication4
namespace WebApplication416
 {
{17
 /// <summary>
    /// <summary>18
 /// WebForm1 的摘要描述。
    /// WebForm1 的摘要描述。19
 /// </summary>
    /// </summary>20
 public class WebForm1 : System.Web.UI.Page
    public class WebForm1 : System.Web.UI.Page21
 {
    {22
 protected System.Web.UI.HtmlControls.HtmlInputHidden hidselectindex;
        protected System.Web.UI.HtmlControls.HtmlInputHidden hidselectindex;23
 protected System.Web.UI.WebControls.Label Label1;
        protected System.Web.UI.WebControls.Label Label1;24
 protected System.Web.UI.WebControls.Button Button1;
        protected System.Web.UI.WebControls.Button Button1;25
 protected System.Web.UI.WebControls.Label SortOrder;
        protected System.Web.UI.WebControls.Label SortOrder;26
 protected System.Web.UI.WebControls.Label RequestedPage;
        protected System.Web.UI.WebControls.Label RequestedPage;27
 protected System.Web.UI.WebControls.DataGrid DataGrid1;
        protected System.Web.UI.WebControls.DataGrid DataGrid1;28
 
    29
 private void Page_Load(object sender, System.EventArgs e)
        private void Page_Load(object sender, System.EventArgs e)30
 {
        {31
 // 在這裡放置使用者程式碼以初始化網頁
            // 在這裡放置使用者程式碼以初始化網頁32
 if(!Page.IsPostBack)
            if(!Page.IsPostBack)33
 {
            {34
 SortOrder.Text = "Name";
                SortOrder.Text = "Name";35
 this.RequestedPage.Text="0";
                this.RequestedPage.Text="0";36

37
 Bind();
                Bind();38
 }
            }39
 select();
            select();40
 //            add();
//            add();41
 }
        }42

43
 Web Form 設計工具產生的程式碼
        Web Form 設計工具產生的程式碼67
 private  void Bind()
        private  void Bind()68
 {
        {69
 DataSet ds=new DataSet();
            DataSet ds=new DataSet();70
 ds.ReadXml(Server.MapPath("user.xml"));
            ds.ReadXml(Server.MapPath("user.xml"));71
 DataView dv=new DataView();
            DataView dv=new DataView();72
 dv=ds.Tables[0].DefaultView;
            dv=ds.Tables[0].DefaultView;73
 this.DataGrid1.DataSource=ds.Tables[0].DefaultView;
            this.DataGrid1.DataSource=ds.Tables[0].DefaultView;74
 if(Convert.ToInt32(this.RequestedPage.Text)>=Convert.ToInt32(ds.Tables[0].Rows.Count/this.DataGrid1.PageSize))
            if(Convert.ToInt32(this.RequestedPage.Text)>=Convert.ToInt32(ds.Tables[0].Rows.Count/this.DataGrid1.PageSize))75
 RequestedPage.Text = "0";
                 RequestedPage.Text = "0";76
 dv.Sort=SortOrder.Text;
            dv.Sort=SortOrder.Text;77
 this.DataGrid1.CurrentPageIndex=Convert.ToInt32(this.RequestedPage.Text);
            this.DataGrid1.CurrentPageIndex=Convert.ToInt32(this.RequestedPage.Text);78
 this.DataGrid1.DataBind();
            this.DataGrid1.DataBind();79
 select();
            select();80
 //            add();
//            add();81
 }
        }82

83
 private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
        private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)84
 {
        {85
 this.RequestedPage.Text=e.NewPageIndex.ToString();
            this.RequestedPage.Text=e.NewPageIndex.ToString();86
 Bind();
            Bind();87
 }
        }88

89

90
 private void select()
        private void select()91
 {
        {    92
 foreach ( DataGridItem item in this.DataGrid1.Controls[0].Controls)
            foreach ( DataGridItem item in this.DataGrid1.Controls[0].Controls) 93
 {
            { 94
 if (item.ItemType == ListItemType.Header)
                if (item.ItemType == ListItemType.Header) 95
 {
                { 96
 
                    97
 CheckBox CheckBox1=(CheckBox)item.FindControl("CheckBox1");
                    CheckBox CheckBox1=(CheckBox)item.FindControl("CheckBox1"); 98
 System.Text.StringBuilder strscript = new System.Text.StringBuilder("<script language='javascript'> \n");
                    System.Text.StringBuilder strscript = new System.Text.StringBuilder("<script language='javascript'> \n"); 99
 strscript.Append(" function checkstatus() { \n");
                    strscript.Append(" function checkstatus() { \n"); 100
 strscript.Append(" var ball = true; \n");
                    strscript.Append(" var ball = true; \n"); 101
 strscript.Append(" ball = document.all('" + CheckBox1.ClientID + "').checked; \n");
                    strscript.Append(" ball = document.all('" + CheckBox1.ClientID + "').checked; \n"); 102

103
 for(int i=0; i<this.DataGrid1.Items.Count ; i++)
                    for(int i=0; i<this.DataGrid1.Items.Count ; i++) 104
 {
                    { 105
 strscript.Append(" document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "').checked = ball; \n");
                        strscript.Append(" document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "').checked = ball; \n");106
 strscript.Append(" AddRemoveValues(document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "')); \n");
                        strscript.Append(" AddRemoveValues(document.all('" + ((HtmlInputCheckBox)(this.DataGrid1.Items[i].Cells[0].FindControl("CheckBox2"))).ClientID+ "')); \n");107
 }
                    } 108
 strscript.Append(" } \n");
                    strscript.Append(" } \n"); 109
 strscript.Append("</script> \n");
                    strscript.Append("</script> \n"); 110
 if(!Page.IsClientScriptBlockRegistered("checkstatus"))
                    if(!Page.IsClientScriptBlockRegistered("checkstatus")) 111
 Page.RegisterClientScriptBlock("checkstatus",strscript.ToString());
                        Page.RegisterClientScriptBlock("checkstatus",strscript.ToString()); 112
 CheckBox1.Attributes.Add("onclick","checkstatus()");
                    CheckBox1.Attributes.Add("onclick","checkstatus()"); 113
 return;
                    return; 114
 }
                } 115
 }
            }116
 }
        }117

118
 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)119
 {
        {120
 if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)121
 {
            {122
 if(hidselectindex.Value.IndexOf(e.Item.Cells[1].Text) >= 0 )
                if(hidselectindex.Value.IndexOf(e.Item.Cells[1].Text) >= 0 )123
 {
                {124
 HtmlInputCheckBox CheckBox2 = (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("CheckBox2"));
                    HtmlInputCheckBox CheckBox2 = (HtmlInputCheckBox)(e.Item.Cells[0].FindControl("CheckBox2"));125
 CheckBox2.Checked = true;
                    CheckBox2.Checked = true;126
 }
                }127
 }
            }128

129
 }
        }130

131
 private void Button1_Click(object sender, System.EventArgs e)
        private void Button1_Click(object sender, System.EventArgs e)132
 {
        {133
 Label1.Text = hidselectindex.Value.Replace(",","<li>");
            Label1.Text = hidselectindex.Value.Replace(",","<li>");134

135
 }
        }136

137
 private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)
        private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)138
 {
        {139
 if(SortOrder.Text.Trim()==e.SortExpression.Trim())
         if(SortOrder.Text.Trim()==e.SortExpression.Trim())140
 SortOrder.Text = e.SortExpression.Trim() + " desc";
                SortOrder.Text = e.SortExpression.Trim() + " desc";141
 else
        else142
 SortOrder.Text = e.SortExpression.Trim();
            SortOrder.Text = e.SortExpression.Trim();143
 Bind();
            Bind();144

145
 }
        }146

147
 
        148

149
 }
    }150
 }
}151

/Files/gjcn/WebForm1.rar
    版权所有归"布衣软件工作者".未经容许不得转载.
 
                    
                     
                    
                 
                    
                

 
                
            
         
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号