Frage : Paginierung auf einem kundenspezifischen gridview erzeugen

Ich habe eine Zollkontrolle, der ich den verlängere ein GridView verursachte, ist es Zweck ist, das Herstellen einer sich hin- und herbewegenden Überschrift (die zu behandeln ein Eigentum des Steuer-IMO sein sollte) und kundenspezifische Paginierung auf einem GridView using LinkButtons.  Ich in der Lage bin, die Paginierung richtig zu erzeugen, aber das LinkButtons zeigen nicht als Verbindungen, das href Eigentum nicht eingestellt.  Ich versucht, den Code durchzuführen, um das LinkButtons in den OnInit und OnLoad Methoden zu erzeugen, aber es funktioniert nicht.  Ich angebracht den Code unten n.  

It ist mein erster Versuch an der Schaffung einer Zollkontrolle, also bin ich sicher, dass es Sachen gibt, die ich anders als tun könnte, oder mehr efficiently.

Any Hilfe auf diesem appreciated.

Thanks im Voraus.
sein
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI;

/// 
/// diese Zollkontrolle verursacht ein gridview mit einer sich hin- und herbewegenden Überschrift und einer Gewohnheit, die paginieren, um die Zahl Reihen pro Seite nur zurückzubringen.
/// 
namespace-Kontrollen
{
    allgemeine Kategorie ScrollPageGridView: System.Web.UI.WebControls.GridView
    {
        #region Eigenschaften
        privates Int32, das = 10 pagesPerGrouping ist;

        allgemeine Schnur PagerBackColor {erhalten; Satz; }
        allgemeine Maßeinheit GridHeight {erhalten; Satz; }
        allgemeine Maßeinheit GridWidth {erhalten; Satz; }
        Öffentlichkeit Int32 TotalRows {erhalten; Satz; }
        Öffentlichkeit Int32 PagesPerGrouping
        {
            erhalten
            {
                das pagesPerGrouping zurückbringen;
            }
            einstellen
            {
                Int32 rösten = 10;
                Int32.TryParse (value.ToString (), rösten heraus);
                das pagesPerGrouping = rösten;
            }
        }
        #endregion

        allgemeines Ereignis EventHandler GridViewPageChangedCustom;

        geschützte Übersteuerungslücke OnInit (EventArgs e)
        {
            base.OnInit (e);
            HtmlTableCell Th = GeneratePaging („Th“);
            
        }

        #region ScrollPageGridView ()
        allgemeines ScrollPageGridView () {}
        #endregion
        
        #region CalculateWidth ()
        private Schnur CalculateWidth ()
        {
            Schnur strWidth = „Automobil“;
            wenn (! this.GridWidth.IsEmpty)
            {
                strWidth = String.Format („{0} {1}“, this.GridWidth.Value, ((this.GridWidth.Type == UnitType.Percentage)? „%“: „px“));
            }
            RückholstrWidth;
        }
        #endregion
        
        #region CalculateHeight ()
        private Schnur CalculateHeight ()
        {
            Schnur strHeight = „200px“;
            wenn (! this.GridHeight.IsEmpty)
            {
                strHeight = String.Format („{0} {1}“, this.GridHeight.Value, ((this.GridHeight.Type == UnitType.Percentage)? „%“: „px“));
            }
            RückholstrHeight;
        }
        #endregion

        #region übertragen
        geschützte Übersteuerungslücke übertragen (HtmlTextWriter Verfasser)
        {
            // übertragen Überschriftreihe.
            wenn (this.HeaderRow! = Null)
            {
                GridViewRow customHeader = this.HeaderRow;

                Verfasser. Schreiben („");

                customHeader.ApplyStyle (this.HeaderStyle);
                wenn (AutoGenerateColumns == falsch)
                {
                    // entfernen die vorhandenen Zellen von der Überschrift.
                    für (int J = customHeader.Cells.Count - 1; J >= 0; J--)
                    {
                        wenn (dieses. Spalten [J]. Sichtbares == falsch)
                            customHeader.Cells.RemoveAt (j);
                    }

                    Int32 I = 0;
                    foreach (DataControlField Spalte diesbezüglich. Spalten)
                    {

                        wenn (Spalte. Sichtbares == zutreffend)
                        {
                            customHeader.Cells [i] .ApplyStyle (col.HeaderStyle);
                            i++;
                        }
                    }
                }
                customHeader.RenderControl (Verfasser);
                Verfasser. Schreiben („
"); this.HeaderRow.Visible = falsch; } // übertragen Datenfolgen. //-Anfang der Div.-Umbau für das Blättern gridview. Verfasser. Schreiben („
"); // erhalten die Pagerreihe und bilden unsichtbar. GridViewRow customPager = this.BottomPagerRow; wenn (this.BottomPagerRow! = Null) { this.BottomPagerRow.Visible = falsch; } Unterseite. Übertragen (Verfasser); Verfasser. Schreiben („
"); // übertragen Pagerreihe. wenn (customPager! = Null) { Verfasser. Schreiben („"); customPager.ApplyStyle (this.PagerStyle); customPager.Visible = ausrichten en; customPager.RenderControl (Verfasser); Verfasser. Schreiben („
"); Verfasser. Schreiben („"); Verfasser. Schreiben („"); HtmlTableCell Th = GeneratePaging („Th“); th.RenderControl (Verfasser); Verfasser. Schreiben („"); Verfasser. Schreiben („
"); } } #endregion #region GeneratePaging () /// /// erzeugen die Seitenzahlen auf dem Rasterfeld. /// privates HtmlTableCell GeneratePaging (Schnur TableCellType) { Versuch { HtmlTableCell Th = neues HtmlTableCell (TableCellType); Th. Attributes.Add („Bereich“, „Spalte“); Th. Attributes.Add („Art“, „Breite: 400px; Text-ausrichten: link; "); pagesPerGrouping //int = PagesPerGrouping; int fontSize = 10; int totRows = 0; int numPages = 1; int gridActSelectedPage = 1; int curPageGroup = 1; int startPageForGroup; int endPageForGroup; Schnur litSep = „  “; // erhalten die Gesamtzahl Reihen, die vom DB zurückgebracht. totRows = this.TotalRows; // erhalten den Strom Seitenindex. wenn (this.ViewState [„gv“ + this.ID + „Seitenindex“]! = Null) gridActSelectedPage = Convert.ToInt32 (this.ViewState [„gv“ + this.ID + „Seitenindex“]) + 1; Tatsächliches Seitenindex //, Seitenindex ist 0 gegründet; // löschen heraus alle vorhandenen Kontrollen. Th. Controls.Clear (); // gründete auf der Zahl Reihen im DataView und die Zahl Einzelteilen pro Seite im Rasterfeld herausfinden die Zahl den benötigten Seiten igten. numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble (totRows)/Convert.ToDouble (this.PageSize))); //-Verteilung die aktuelle Seite durch die Zahl Seiten pro die Gruppierung zum der heraus zu gruppieren, zu finden sind wir in. // subtrahieren 1 von der aktuellen gruppierenden Seite, multiplizieren mit den Seiten pro die Gruppierung und addieren dann 1, um die beginnende Seite für die Gruppe zu erhalten. curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal (gridActSelectedPage)/Convert.ToDecimal (pagesPerGrouping))); startPageForGroup = ((curPageGroup - 1) * pagesPerGrouping) + 1; // erhalten die letzte Seite in der Seitengruppe. endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages); // addieren Seite nav Knöpfe, wenn es mehr Seiten dann gibt, was auf dem Schirm darstellen kann. wenn (startPageForGroup! = 1) { LinkButton lnk = neues LinkButton (); lnk.ID = „lbl“ + this.ID + „Seite“ + (startPageForGroup - 1).ToString (); lnk. Text = „<<“; lnk.CommandArgument = (startPageForGroup - 1).ToString (); lnk. Font.Size = FontUnit.Point (fontSize); lnk. Klicken += neues EventHandler (gvPage_Click); Th. Controls.Add (lnk); // hinzufügen einen Separator zwischen Seitenzahlen gen. Wörtliches litSeparator = neuer Druckfehler (); litSeparator.Text = litSep; litSeparator.ID = „litSeparatorLT“; Th. Controls.Add (litSeparator); } //-Schleife durch die aktive Seite einstellte te und anzeigt die Zahlen über dem Seitenende. für (int I = startPageForGroup; <= I endPageForGroup; i++) { // für die Sperrung der aktiven Seite die Verbindung. LinkButton lnk = neues LinkButton (); lnk.ID = „lbl“ + this.ID + „Seite“ + i.ToString (); lnk. Text = i.ToString (); lnk.CommandArgument = i.ToString (); lnk. Font.Size = FontUnit.Point (fontSize); wenn (i == gridActSelectedPage) { lnk. Ermöglicht = falsch; } sonst { lnk. Klicken += neues EventHandler (gvPage_Click); lnk. Befehl += neues CommandEventHandler (gvPage_Command); } Th. Controls.Add (lnk); // hinzufügen einen Separator zwischen Seitenzahlen gen. Wörtliches litSeparator = neuer Druckfehler (); litSeparator.Text = litSep; litSeparator.ID = „litSeparator“ + i.ToString (); Th. Controls.Add (litSeparator); } //, wenn die Zahl Gesamtseiten mehr ist, als die Gruppierung dann gesetzt in >> für Navigation. wenn (numPages > endPageForGroup) { LinkButton lnk = neues LinkButton (); lnk.ID = „lbl“ + this.ID + „Seite“ + (endPageForGroup + 1).ToString (); lnk. Text = „>>“; lnk.CommandArgument = (endPageForGroup + 1).ToString (); lnk. Font.Size = FontUnit.Point (fontSize); lnk. Klicken += neues EventHandler (gvPage_Click); Th. Controls.Add (lnk); } Rückholth; } Fang (Ausnahme) { Wurf; } } #endregion #region gvPage_Click privates leeres gvPage_Click (Gegenstandabsender, EventArgs e) { wenn (GridViewPageChangedCustom! = Null) { GridViewPageChangedCustom (dieses, neues EventArgs ()); } } #endregion } }

Antwort : Paginierung auf einem kundenspezifischen gridview erzeugen

Bevor Sie das Volumen addierten, in der Lage waren Sie zu LM die VM zwischen den Nullpunkten?

können Sie dieses prüfen und mir die Resultate erklären.
1. Abschaltung die VM auf Nullpunkt, in dem sie laufend ist, ließ mich sie nennen NodeA und versuchen zu leben abwandern es zu NodeB und sehen, wenn sie folgt. Wenn sie versucht, sie oben auf NodeB zu holen, sehen, dass es folgt.
2.Try, zum schnell der VM von NodeA zu NodeB abzuwandern und sehen, wenn es folgt.

 
Weitere Lösungen  
 
programming4us programming4us