Questione : Generare la paginazione su un gridview su ordinazione

Ho un controllo su ordinazione che ho generato quello estendo un GridView, è scopo è di trattare la generazione dell'intestazione di galleggiamento (che dovrebbe essere una proprietà del IMO di controllo) e paginazione su ordinazione su un GridView using LinkButtons.  Posso generare correttamente la paginazione ma il LinkButtons non sta rivelando come collegamenti, la proprietà del href non sta regolando.  Ho provato ad eseguire il codice per generare il LinkButtons nei metodi di OnLoad e di OnInit ma non sta funzionando.  Ho attaccato il codice qui sotto.  il

It è il mio primo tentativo a generare un controllo su ordinazione in modo da sono sicuro che ci sono cose che potrei fare diversamente o più aiuto di efficiently.

Any su questo sarebbe in anticipo appreciated.

Thanks.
class= > " libero " del
> " del codeSnippet " del class= del
class= " lineNumbers " del
class= del
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:
36:
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:
sistema >using notpretty " del class= " del id= " codeSnippet810186 del
 di ///
/// questo controllo su ordinazione genererà un gridview con un'intestazione e un'abitudine di galleggiamento che paginano per restituire soltanto il numero delle file per pagina.
/// 
comandi del namespace
{
    codice categoria pubblico ScrollPageGridView: System.Web.UI.WebControls.GridView
    {
        Proprietà di #region
        Int32 riservato che pagesPerGrouping = 10;

        stringa pubblica PagerBackColor {ottenere; insieme; }
        unità pubblica GridHeight {ottenere; insieme; }
        unità pubblica GridWidth {ottenere; insieme; }
        pubblico Int32 TotalRows {ottenere; insieme; }
        pubblico Int32 PagesPerGrouping
        {
            ottenere
            {
                restituire pagesPerGrouping;
            }
            regolar
            {
                Int32 macerano = 10;
                Int32.TryParse (value.ToString (), fuori macerano);
                pagesPerGrouping = macera;
            }
        }
        #endregion

        evento pubblico EventHandler GridViewPageChangedCustom;

        vuoto protettivo della provvigione supplementare OnInit (EventArgs e)
        {
            base.OnInit (e);
            Th di HtmlTableCell = GeneratePaging (“Th„);
            
        }

        #region ScrollPageGridView ()
        ScrollPageGridView pubblico () {}
        #endregion
        
        #region CalculateWidth ()
        stringa riservata CalculateWidth ()
        {
            strWidth della stringa = “automobile„;
            se (! this.GridWidth.IsEmpty)
            {
                strWidth = String.Format (“{0} {1}„, this.GridWidth.Value, ((== UnitType.Percentage di this.GridWidth.Type)? “%„: “px„));
            }
            strWidth di ritorno;
        }
        #endregion
        
        #region CalculateHeight ()
        stringa riservata CalculateHeight ()
        {
            strHeight della stringa = “200px„;
            se (! this.GridHeight.IsEmpty)
            {
                strHeight = String.Format (“{0} {1}„, this.GridHeight.Value, ((== UnitType.Percentage di this.GridHeight.Type)? “%„: “px„));
            }
            strHeight di ritorno;
        }
        #endregion

        Il #region rende
        il vuoto protettivo della provvigione supplementare rende (produttore di HtmlTextWriter)
        {
            // rende la fila dell'intestazione.
            se (this.HeaderRow! = posizione di segnale minimo)
            {
                customHeader di GridViewRow = this.HeaderRow;

                produttore. Scrivere (“il border= ");

                customHeader.ApplyStyle (this.HeaderStyle);
                se (== di AutoGenerateColumns falso)
                {
                    // rimuove le cellule attuali dall'intestazione.
                    per (int J = customHeader.Cells.Count - 1; >= 0 di J; J--)
                    {
                        se (questo. Colonne [J]. == visibile falso)
                            customHeader.Cells.RemoveAt (j);
                    }

                    Int32 i = 0;
                    foreach (colonna di DataControlField in questo. Colonne)
                    {

                        se (colonna. == visibile allineare)
                        {
                            customHeader.Cells [i] .ApplyStyle (col.HeaderStyle);
                            i++;
                        }
                    }
                }
                customHeader.RenderControl (produttore);
                produttore. Scrivere (“
"); this.HeaderRow.Visible = falso; } // rende le file di dati. Inizio di // la modifica di divisione per il gridview di scrolling. produttore. Scrivere (“id= del
"); // ottiene la fila dell'impaginatore e rende invisibile. customPager di GridViewRow = this.BottomPagerRow; se (this.BottomPagerRow! = posizione di segnale minimo) { this.BottomPagerRow.Visible = falso; } base. Rendere (produttore); produttore. Scrivere (“
"); // rende la fila dell'impaginatore. se (customPager! = posizione di segnale minimo) { produttore. Scrivere (“cellspacing='" "); customPager.ApplyStyle (this.PagerStyle); customPager.Visible = allineano; customPager.RenderControl (produttore); produttore. Scrivere (“
"); produttore. Scrivere (“il border= "); produttore. Scrivere (“style= \ “priorità-colore del "); Th di HtmlTableCell = GeneratePaging (“Th„); th.RenderControl (produttore); produttore. Scrivere (“"); produttore. Scrivere (“
"); } } #endregion #region GeneratePaging () di /// /// genera i numeri di pagina sulla griglia. /// HtmlTableCell riservato GeneratePaging (stringa TableCellType) { prova { Th di HtmlTableCell = nuovo HtmlTableCell (TableCellType); Th. Attributes.Add (“portata„, “colonna„); Th. Attributes.Add (“stile„, “larghezza: 400px; testo-allineare: di sinistra; "); //int che pagesPerGrouping = PagesPerGrouping; il int fontSize = 10; totRows di int = 0; numPages di int = 1; gridActSelectedPage di int = 1; curPageGroup di int = 1; startPageForGroup di int; endPageForGroup di int; litSep della stringa = “  „; // ottiene il numero delle file totale che sono state restituite dal DB. totRows = this.TotalRows; // ottiene la corrente dell'indice delle pagine. se (this.ViewState [“gv„ + this.ID + “dell'indice delle pagine„]! = posizione di segnale minimo) gridActSelectedPage = Convert.ToInt32 (this.ViewState [“gv„ + this.ID + “dell'indice delle pagine„]) + 1; Dell'indice delle pagine reale di //, dell'indice delle pagine è 0 basato; // elimina fuori tutti i comandi attuali. Th. Controls.Clear (); // ha basato sul numero delle file nel DataView ed il numero degli articoli per pagina nella griglia calcola fuori il numero delle pagine state necessarie. numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble)/Convert.ToDouble (this.PageSize) (dei totRows)); Disaccordo di // la pagina corrente dal numero delle pagine per raggruppamento da trovare fuori in cui raggruppare siamo. // sottrae 1 dalla pagina corrente che raggruppa, moltiplica per le pagine per raggruppamento ed allora aggiunge 1 per ottenere la pagina cominciante per il gruppo. curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal)/Convert.ToDecimal (pagesPerGrouping) (di gridActSelectedPage)); startPageForGroup = ((curPageGroup - 1) * che pagesPerGrouping) + 1; // ottiene l'ultima pagina nel gruppo della pagina. endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages); // aggiunge i tasti del nav della pagina quando ci sono più pagine allora che cosa può mostrare sullo schermo. se (startPageForGroup! = 1) { Lnk di LinkButton = nuovo LinkButton (); lnk.ID = “lbl„ + this.ID + “pagina„ + (startPageForGroup - 1).ToString (); lnk. Testo = “<<„; lnk.CommandArgument = (startPageForGroup - 1).ToString (); lnk. Font.Size = FontUnit.Point (fontSize); lnk. Scatto += nuovo EventHandler (gvPage_Click); Th. Controls.Add (lnk); // aggiunge un separatore fra i numeri di pagina. litSeparator letterale = nuova costante letterale (); litSeparator.Text = litSep; litSeparator.ID = “litSeparatorLT„; Th. Controls.Add (litSeparator); } Il ciclo di // attraverso la pagina attiva ha fissato e visualizza i numeri attraverso la persona alta un dato numero di piedi. per (int i = startPageForGroup; endPageForGroup del <= i; i++) { // per il disable della pagina attiva il collegamento. Lnk di LinkButton = nuovo LinkButton (); lnk.ID = “lbl„ + this.ID + “pagina„ + i.ToString (); lnk. Testo = i.ToString (); lnk.CommandArgument = i.ToString (); lnk. Font.Size = FontUnit.Point (fontSize); se (gridActSelectedPage del == di i) { lnk. Permesso a = falso; } altrimenti { lnk. Scatto += nuovo EventHandler (gvPage_Click); lnk. Ordine += nuovo CommandEventHandler (gvPage_Command); } Th. Controls.Add (lnk); // aggiunge un separatore fra i numeri di pagina. litSeparator letterale = nuova costante letterale (); litSeparator.Text = litSep; litSeparator.ID = “litSeparator„ + i.ToString (); Th. Controls.Add (litSeparator); } // se il numero delle pagine totali è più del raggruppamento allora messo in >> per la navigazione. se (numPages > endPageForGroup) { Lnk di LinkButton = nuovo LinkButton (); lnk.ID = “lbl„ + this.ID + “pagina„ + (endPageForGroup + 1).ToString (); lnk. Testo = “>>„; lnk.CommandArgument = (endPageForGroup + 1).ToString (); lnk. Font.Size = FontUnit.Point (fontSize); lnk. Scatto += nuovo EventHandler (gvPage_Click); Th. Controls.Add (lnk); } Th di ritorno; } fermo (eccezione) { tiro; } } #endregion gvPage_Click di #region gvPage_Click vuoto riservato (mittente dell'oggetto, EventArgs e) { se (GridViewPageChangedCustom! = posizione di segnale minimo) { GridViewPageChangedCustom (questo, nuovo EventArgs ()); } } #endregion } }
class= del

Risposta : Generare la paginazione su un gridview su ordinazione

Prima dell'aggiunta del volume potevate a LM il VM fra i nodi?

potete provare questo e dirmi i risultati.
1. L'arresto il VM sul nodo dove è che funziona, lo ha lasciato denominarlo NodeA e provare a vivere lo migra a NodeB e vede se riesce. Se provi a portarlo in su su NodeB, vedere che riesce.
2.Try rapidamente per migrare il VM da NodeA a NodeB e per vedere se riesce.

 
Altre soluzioni  
 
programming4us programming4us