Pergunta : Gerar a paginação em um gridview feito sob encomenda

Eu tenho um controle feito sob encomenda que eu crie aquele estenda um GridView, é finalidade é segurar a criação de um encabeçamento de flutuação (que deve ser uma propriedade do OMI do controle) e paginação feita sob encomenda em um GridView using LinkButtons.  Eu posso gerar corretamente a paginação mas o LinkButtons não está aparecendo como as ligações, a propriedade do href não está sendo ajustado.  Eu tentei executar o código para gerar o LinkButtons nos métodos de OnInit e de OnLoad mas não está trabalhando.  Eu uni o código abaixo.  o

It é minha primeira tentativa em criar um controle feito sob encomenda assim que eu sou certo que há as coisas que eu poderia fazer diferentemente ou mais ajuda de efficiently.

Any nesta seria appreciated.

Thanks adiantado.
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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 " do class= " do id= " codeSnippet810186 do
 de ///
/// este controle feito sob encomenda criará um gridview com um encabeçamento e um costume de flutuação que paginam para retornar somente o número de fileiras por a página.
/// 
controles do namespace
{
    classe pública ScrollPageGridView: System.Web.UI.WebControls.GridView
    {
        Propriedades do #region
        Int32 confidencial que pagesPerGrouping = 10;

        corda pública PagerBackColor {começ; jogo; }
        unidade pública GridHeight {começ; jogo; }
        unidade pública GridWidth {começ; jogo; }
        público Int32 TotalRows {começ; jogo; }
        público Int32 PagesPerGrouping
        {
            começ
            {
                retornar pagesPerGrouping;
            }
            ajustar
            {
                Int32 ret = 10;
                Int32.TryParse (value.ToString (), ret para fora);
                pagesPerGrouping = ret;
            }
        }
        #endregion

        evento público EventHandler GridViewPageChangedCustom;

        vácuo protegido OnInit da ultrapassagem (EventArgs e)
        {
            base.OnInit (e);
            Th de HtmlTableCell = GeneratePaging (“th”);
            
        }

        #region ScrollPageGridView ()
        ScrollPageGridView público () {}
        #endregion
        
        #region CalculateWidth ()
        corda confidencial CalculateWidth ()
        {
            strWidth da corda = “automóvel”;
            se (! this.GridWidth.IsEmpty)
            {
                strWidth = String.Format (“{0} {1}”, this.GridWidth.Value, ((== UnitType.Percentage de this.GridWidth.Type)? “%”: “px”));
            }
            strWidth do retorno;
        }
        #endregion
        
        #region CalculateHeight ()
        corda confidencial CalculateHeight ()
        {
            strHeight da corda = “200px”;
            se (! this.GridHeight.IsEmpty)
            {
                strHeight = String.Format (“{0} {1}”, this.GridHeight.Value, ((== UnitType.Percentage de this.GridHeight.Type)? “%”: “px”));
            }
            strHeight do retorno;
        }
        #endregion

        O #region rende
        o vácuo protegido da ultrapassagem rende (o escritor de HtmlTextWriter)
        {
            // rende a fileira do encabeçamento.
            se (this.HeaderRow! = zero)
            {
                customHeader de GridViewRow = this.HeaderRow;

                escritor. Escrever (“o border= ");

                customHeader.ApplyStyle (this.HeaderStyle);
                se (== de AutoGenerateColumns falso)
                {
                    // remove as pilhas existentes do encabeçamento.
                    para (int j = customHeader.Cells.Count - 1; >= 0 de j; j--)
                    {
                        se (isto. Colunas [j]. == visível falso)
                            customHeader.Cells.RemoveAt (j);
                    }

                    Int32 i = 0;
                    foreach (coluna de DataControlField neste. Colunas)
                    {

                        se (coluna. == visível verdadeiro)
                        {
                            customHeader.Cells [i] .ApplyStyle (col.HeaderStyle);
                            i++;
                        }
                    }
                }
                customHeader.RenderControl (escritor);
                escritor. Escrever (“
"); this.HeaderRow.Visible = falso; } // rende fileiras de dados. Começo de // o Tag do Div para o gridview do desdobramento. escritor. Escrever (do “id=
"); // começ a fileira do pager e faz invisível. customPager de GridViewRow = this.BottomPagerRow; se (this.BottomPagerRow! = zero) { this.BottomPagerRow.Visible = falso; } base. Render (escritor); escritor. Escrever (“
"); // rende a fileira do pager. se (customPager! = zero) { escritor. Escrever (“cellspacing='" "); customPager.ApplyStyle (this.PagerStyle); customPager.Visible = retificam; customPager.RenderControl (escritor); escritor. Escrever (“
"); escritor. Escrever (“o border= "); escritor. Escrever (do “style= \ “fundo-cor "); Th de HtmlTableCell = GeneratePaging (“th”); th.RenderControl (escritor); escritor. Escrever (“"); escritor. Escrever (“
"); } } #endregion #region GeneratePaging () de /// /// gera os números de página na grade. /// HtmlTableCell confidencial GeneratePaging (corda TableCellType) { tentativa { Th de HtmlTableCell = HtmlTableCell novo (TableCellType); th. Attributes.Add (“espaço”, “coluna”); th. Attributes.Add (“estilo”, “largura: 400px; texto-alinhar: esquerdo; "); //int que pagesPerGrouping = PagesPerGrouping; o int fontSize = 10; totRows do int = 0; numPages do int = 1; gridActSelectedPage do int = 1; curPageGroup do int = 1; startPageForGroup do int; endPageForGroup do int; litSep da corda = “  ”; // começ o número de fileiras total que foram retornadas do DB. totRows = this.TotalRows; // começ o índice de página atual. se (this.ViewState [“gv” + this.ID + “PageIndex”]! = zero) gridActSelectedPage = Convert.ToInt32 (this.ViewState [“gv” + this.ID + “PageIndex”]) + 1; O índice de página real de //, índice de página é 0 baseado; // cancela para fora todos os controles existentes. th. Controls.Clear (); // baseou no número de fileiras no DataView e o número de artigos por a página na grade figura para fora o número de páginas necessários. numPages = Convert.ToInt32 (Math.Ceiling (Convert.ToDouble) (dos totRows/Convert.ToDouble (this.PageSize))); Partilha de // a página atual pelo número de páginas por o agrupamento para encontrar para fora em que agrupar nós estamos. // subtrai 1 da página atual que agrupa, multiplica-o pelas páginas por o agrupamento e adiciona-o então 1 para começ a página começando para o grupo. curPageGroup = Convert.ToInt32 (Math.Ceiling (Convert.ToDecimal) (do gridActSelectedPage/Convert.ToDecimal (pagesPerGrouping))); startPageForGroup = ((curPageGroup - 1) * que pagesPerGrouping) + 1; // começ a última página no grupo da página. endPageForGroup = (startPageForGroup + pagesPerGrouping - 1 < numPages? startPageForGroup + pagesPerGrouping - 1: numPages); // adiciona teclas do nav da página quando há mais páginas então o que pode mostrar na tela. se (startPageForGroup! = 1) { Lnk de LinkButton = LinkButton novo (); lnk.ID = “lbl” + this.ID + “página” + (startPageForGroup - 1) .ToString (); lnk. Texto = “<<”; lnk.CommandArgument = (startPageForGroup - 1) .ToString (); lnk. Font.Size = FontUnit.Point (fontSize); lnk. Clique += EventHandler novo (gvPage_Click); th. Controls.Add (lnk); // adiciona um separador entre números de página. litSeparator literal = Literal novo (); litSeparator.Text = litSep; litSeparator.ID = “litSeparatorLT”; th. Controls.Add (litSeparator); } O laço de // através da página ativa ajustou e indicou os números através do pé de página. para (int i = startPageForGroup; endPageForGroup do <= i; i++) { // para a inutilização da página ativa a ligação. Lnk de LinkButton = LinkButton novo (); lnk.ID = “lbl” + this.ID + “página” + i.ToString (); lnk. Texto = i.ToString (); lnk.CommandArgument = i.ToString (); lnk. Font.Size = FontUnit.Point (fontSize); se (gridActSelectedPage do == de i) { lnk. Permitido = falso; } mais { lnk. Clique += EventHandler novo (gvPage_Click); lnk. Comando += CommandEventHandler novo (gvPage_Command); } th. Controls.Add (lnk); // adiciona um separador entre números de página. litSeparator literal = Literal novo (); litSeparator.Text = litSep; litSeparator.ID = “litSeparator” + i.ToString (); th. Controls.Add (litSeparator); } // se o número de páginas totais é mais do que o agrupamento põr então >> para na navegação. se (numPages > endPageForGroup) { Lnk de LinkButton = LinkButton novo (); lnk.ID = “lbl” + this.ID + “página” + (endPageForGroup + 1) .ToString (); lnk. Texto = “>>”; lnk.CommandArgument = (endPageForGroup + 1) .ToString (); lnk. Font.Size = FontUnit.Point (fontSize); lnk. Clique += EventHandler novo (gvPage_Click); th. Controls.Add (lnk); } th do retorno; } prendedor (exceção) { lance; } } #endregion gvPage_Click do #region gvPage_Click vago confidencial (remetente do objeto, EventArgs e) { se (GridViewPageChangedCustom! = zero) { GridViewPageChangedCustom (este, EventArgs novo ()); } } #endregion } }
class= do

Resposta : Gerar a paginação em um gridview feito sob encomenda

Antes de adicionar o volume você podia ao LM o VM entre os nós?

pode você testar este e dizer-me os resultados.
1. A parada programada o VM no nó onde está que funciona, deixou-me chamá-la NodeA e tentá-la viver migra-o a NodeB e considera-a se sucede. Se tenta a trazer acima em NodeB, ver que sucede.
2.Try para migrar o VM de NodeA a NodeB e para ver rapidamente se sucede.

 
Outras soluções  
 
programming4us programming4us