Search code examples
c#internet-explorerwatininfragistics

How do I drive pagination for an infragistics grid in a webpage via watin?


Using IE8's developer mode, I see that select lists are implemented using partial postbacks. Unfortunately, the select list itself doesn't appear addressable. It has no ID. Here is how it looks in IE8:

<TD id=ctl00$mainContentPlaceHolder$DashboardTabContainer$Documents$DocumentsGrid_pager class="ig_8862b396_r0 DataGrid ig_8862b396_r16 DataGridPager" onclick="igtbl_onPagerClick('ctl00xmainContentPlaceHolderxDashboardTabContainerxDocumentsxDocumentsGrid',event)" align=right>
    <SELECT onchange="javascript:igtbl_pageGrid(event,'ctl00xmainContentPlaceHolderxDashboardTabContainerxDocumentsxDocumentsGrid',(this.selectedIndex+1).toString())">
        <OPTION selected>1
        <OPTION>2
        <OPTION>3
        <OPTION>4
        <OPTION>5
        <OPTION>6
        <OPTION>7</OPTION>
    </SELECT>
</TD>

How do I address the select list here? Alternatively, using WatiN from C# and nunit, how do I send pagination events to the grid?


Solution

  • One answer (by far the least favored) was to address them by position. That is to say:

    if (Browser.SelectLists.Count > 0)
        {
            Browser.SelectLists[0].Select(_rand.Next(1, Browser.SelectLists[0].Options.Count).ToString());
        }
    

    if anyone finds a way to do this by ID instead of position, let me know.