- Home
- Forum
- ASP.NET Web Forms (Classic)
- GridGroupingControl always selects first row when paging
GridGroupingControl always selects first row when paging
- May 31, 2013 08:54 PM UTC
- Jan 5, 2016 10:06 AM UTC
I am using the SetCurrent and SetSelected methods of the Record property to select the second row of the grid. The initial page loads and the second record is selected properly but when I select another page then the selected row is always the first one, not the second (or third, etc). I am using EnsureSelection of the GridGroupingControl but it seems like this is a feature/issue of the paging control since it only affects paged requests so I played with SetPagingParameters (of the GridPager) to set the StartRowIndex to 2 but that did not work either. How do I select a different row other than the first one on a new page? I need to do this dynamically, really. In other words, if I can set it to row 2 I will need to be able to set any row for my production task.
Here is my code:
ASPX:
<syncfusion:GridGroupingControl ID="MainGrid" runat="server"
ViewStateMode="Enabled"
ClientObjectID="__essentialGrid"
AutoFormat="Office 2007 Blue"
DataSourceCachingMode="None" >
</syncfusion:GridGroupingControl>
<syncfusion:GridPager ID="MainGridPager" runat="server" Width="715px" PagingControlID="MainGrid" PageSize="12" ViewStateMode="Enabled" Skin = "Office2007Blue" >
<PagerItems>
<syncfusion:NextPreviousGridPagerItem ShowFirstPageButton="true" ShowPreviousPageButton="true"
ShowLastPageButton="False" ShowNextPageButton="false" />
<syncfusion:NumericGridPagerItem ButtonCount="7" />
<syncfusion:NextPreviousGridPagerItem ShowFirstPageButton="false" ShowPreviousPageButton="false"
ShowLastPageButton="true" ShowNextPageButton="true" />
</PagerItems>
</syncfusion:GridPager>
CS (code-behind):
protected void Page_Load(object sender, EventArgs e)
{
MainGrid.DataSource = GetData();
MainGrid.EnsureSelection = false;
//int recordIndex = ((MainGrid.CurrentPage - 1) * MainGridPager.MaximumRows) + 2;
int recordIndex = 2;
if (IsPostBack)
{
recordIndex = 15;
}
MainGrid.Table.Records[recordIndex].SetCurrent();
MainGrid.Table.Records[recordIndex].SetSelected(true);
}
private List<CostItem> GetData()
{
..
(returns 103 items)
..
}
Here is my code:
ASPX:
<syncfusion:GridGroupingControl ID="MainGrid" runat="server"
ViewStateMode="Enabled"
ClientObjectID="__essentialGrid"
AutoFormat="Office 2007 Blue"
DataSourceCachingMode="None" >
</syncfusion:GridGroupingControl>
<syncfusion:GridPager ID="MainGridPager" runat="server" Width="715px" PagingControlID="MainGrid" PageSize="12" ViewStateMode="Enabled" Skin = "Office2007Blue" >
<PagerItems>
<syncfusion:NextPreviousGridPagerItem ShowFirstPageButton="true" ShowPreviousPageButton="true"
ShowLastPageButton="False" ShowNextPageButton="false" />
<syncfusion:NumericGridPagerItem ButtonCount="7" />
<syncfusion:NextPreviousGridPagerItem ShowFirstPageButton="false" ShowPreviousPageButton="false"
ShowLastPageButton="true" ShowNextPageButton="true" />
</PagerItems>
</syncfusion:GridPager>
CS (code-behind):
protected void Page_Load(object sender, EventArgs e)
{
MainGrid.DataSource = GetData();
MainGrid.EnsureSelection = false;
//int recordIndex = ((MainGrid.CurrentPage - 1) * MainGridPager.MaximumRows) + 2;
int recordIndex = 2;
if (IsPostBack)
{
recordIndex = 15;
}
MainGrid.Table.Records[recordIndex].SetCurrent();
MainGrid.Table.Records[recordIndex].SetSelected(true);
}
private List<CostItem> GetData()
{
..
(returns 103 items)
..
}
SIGN IN To post a reply.
4 Replies
NP
Neal Park
June 4, 2013 06:04 PM UTC
I got this working by moving my row selection code from the Page_Load event into the Page_PreRender event.
.CS
protected void Page_PreRender(object sender, EventArgs e)
{
int offset = 2;
int recordIndex = (((MainGrid.CurrentPage - 1) * MainGridPager.MaximumRows) + offset) - 1; // -1 because index is zero based
MainGrid.Table.Records[recordIndex].SetCurrent();
MainGrid.Table.Records[recordIndex].SetSelected(true);
}
HTH,
Neal
.CS
protected void Page_PreRender(object sender, EventArgs e)
{
int offset = 2;
int recordIndex = (((MainGrid.CurrentPage - 1) * MainGridPager.MaximumRows) + offset) - 1; // -1 because index is zero based
MainGrid.Table.Records[recordIndex].SetCurrent();
MainGrid.Table.Records[recordIndex].SetSelected(true);
}
HTH,
Neal
RD
Rakesh D
Syncfusion Team
June 6, 2013 07:44 PM UTC
Hi Neal,
Thanks for your update. We are glad to know that your issue has been resolved. Please let us know if you have any other concerns so that we will be happy to help you out.
Regards,
Rakesh D
PG
Pramod Gaikwad
January 4, 2016 08:23 AM UTC
Hi ,
How to set active 1st row in page when Page change in javascript please let me know as early as possible
KN
Kavitha Narayanan
Syncfusion Team
January 5, 2016 10:06 AM UTC
Hi Pramod,
Query: How to set active 1st row in page when Page change in javascript.
We use EnsureSelection property to achieve your requirement. By default, the first row will be selected always on initial load and page will change when we set EnsureSelection property as true. So, we don’t have to achieve your requirement in javascript.
Please refer to the code and sample.
[Code]
Query: How to set active 1st row in page when Page change in javascript.
We use EnsureSelection property to achieve your requirement. By default, the first row will be selected always on initial load and page will change when we set EnsureSelection property as true. So, we don’t have to achieve your requirement in javascript.
Please refer to the code and sample.
[Code]
<Syncfusion:GridGroupingControl ID="GridGroupingControl1" runat="server" AutoFormat="Office 2007 Blue" BorderCollapse="Separate" DataSourceCachingMode="ViewState" DragSelectionBackColor="Yellow" GroupDropAreaCssClass="GridOffice2003BlueGroupDropArea" EnsureSelection="true" EnableCallbacks="False" HotTrackButtons="False">
</Syncfusion:GridGroupingControl>
Sample: http://www.syncfusion.com/downloads/support/forum/109167/ze/sample2030216458.zip
Regards,
Kavitha N.
SIGN IN To post a reply.
- 4 Replies
- 4 Participants
-
NP Neal Park
- May 31, 2013 08:54 PM UTC
- Jan 5, 2016 10:06 AM UTC