@@ -41,7 +41,7 @@ internal void SetData(QueryInfo queryinfo)
41
41
txtPagingCookie . Text = queryinfo . Results . PagingCookie ;
42
42
if ( queryinfo . Query is FetchExpression && ! form . settings . Results . RetrieveAllPages && ( queryinfo . Results . MoreRecords || queryinfo . PageNo > 1 ) )
43
43
{
44
- mnuPage . Text = ( queryinfo . PageNo < 10 ? "Page " : "" ) + queryinfo . PageNo . ToString ( ) + ( queryinfo . Pages > 0 ? $ "/ { queryinfo . Pages } " : "" ) ;
44
+ SetPageNo ( ) ;
45
45
mnuPageMinus . Enabled = queryinfo . PageNo > 1 ;
46
46
mnuPagePlus . Enabled = queryinfo . Results . MoreRecords ;
47
47
mnuPage . Visible = true ;
@@ -76,6 +76,11 @@ internal void SetData(QueryInfo queryinfo)
76
76
}
77
77
}
78
78
79
+ private void SetPageNo ( )
80
+ {
81
+ mnuPage . Text = ( queryinfo . PageNo < 10 ? "Page " : "" ) + queryinfo . PageNo . ToString ( ) + ( queryinfo . Pages > 0 ? $ "/{ queryinfo . Pages } " : "" ) ;
82
+ }
83
+
79
84
internal void ApplySettingsToGrid ( )
80
85
{
81
86
mnuFriendly . Checked = form . settings . Results . Friendly ;
@@ -348,23 +353,55 @@ private void mnuPagingCookie_Click(object sender, EventArgs e)
348
353
gbPagingCookie . Visible = mnuPagingCookie . Checked ;
349
354
}
350
355
356
+ private void RetrievePageNo ( int page )
357
+ {
358
+ if ( queryinfo . Query is FetchExpression fetchexpr )
359
+ {
360
+ var fetchdoc = new XmlDocument ( ) ;
361
+ fetchdoc . LoadXml ( fetchexpr . Query ) ;
362
+ var fetchnode = fetchdoc . SelectSingleNode ( "fetch" ) as XmlElement ;
363
+ fetchnode . SetAttribute ( "page" , page . ToString ( ) ) ;
364
+ form . FetchResults ( fetchdoc . OuterXml ) ;
365
+ }
366
+ }
367
+
351
368
private void mnuPagePlusMinus_Click ( object sender , EventArgs e )
352
369
{
353
370
var direction = sender == mnuPageMinus ? - 1 : sender == mnuPagePlus ? 1 : 0 ;
354
- if ( direction != 0 && queryinfo . Query is FetchExpression fetchexpr )
371
+ if ( direction != 0 )
355
372
{
356
373
mnuPageMinus . Enabled = false ;
357
374
mnuPagePlus . Enabled = false ;
375
+ var page = queryinfo . PageNo + direction ;
376
+ RetrievePageNo ( page ) ;
377
+ }
378
+ }
379
+
380
+ private void mnuPage_Enter ( object sender , EventArgs e )
381
+ {
382
+ mnuPage . Text = "" ;
383
+ }
358
384
359
- //var fetchxml = Fetch.FromString(fetchexpr.Query);
360
- //fetchxml.PageNumber = (fetchxml.PageNumber ?? 1) + direction;
385
+ private void mnuPage_Validating ( object sender , System . ComponentModel . CancelEventArgs e )
386
+ {
387
+ e . Cancel = ! int . TryParse ( mnuPage . Text , out var _ ) ;
388
+ }
361
389
362
- var page = queryinfo . PageNo + direction ;
363
- var fetchdoc = new XmlDocument ( ) ;
364
- fetchdoc . LoadXml ( fetchexpr . Query ) ;
365
- var fetchnode = fetchdoc . SelectSingleNode ( "fetch" ) as XmlElement ;
366
- fetchnode . SetAttribute ( "page" , page . ToString ( ) ) ;
367
- form . FetchResults ( fetchdoc . OuterXml ) ;
390
+ private void mnuPage_Validated ( object sender , EventArgs e )
391
+ {
392
+ if ( int . TryParse ( mnuPage . Text , out int page ) && page != queryinfo . PageNo )
393
+ {
394
+ RetrievePageNo ( page ) ;
395
+ }
396
+ }
397
+
398
+ private void mnuPage_KeyPress ( object sender , KeyPressEventArgs e )
399
+ {
400
+ if ( e . KeyChar == ( char ) Keys . Enter || e . KeyChar == ( char ) Keys . Tab )
401
+ {
402
+ e . KeyChar = ( char ) Keys . None ;
403
+ e . Handled = true ;
404
+ mnuRecordsNumbers . Focus ( ) ;
368
405
}
369
406
}
370
407
}
0 commit comments