2010-10-26 4 views
2

Я создал приложение настенного экрана для отображения выдающихся запросов поддержки для моего отдела ИКТ. Я связал ряд gridviews с sqldatasources, которые выполняют хранимую процедуру. Это автоматизируется с помощью asp.net ajax-элементов управления и частично обновляет страницу/данные каждые 30 секунд.Как программно перебирать страницы GridView

В настоящий момент, когда количество записей в сетке превышает 9, сетка автоматически отображает страницы и показывает количество страниц в нижнем правом углу. Служба поддержки может затем подключить VNC к ящику, который управляет экраном, и вручную щелкнет, чтобы увидеть, что находится на следующей странице.

Что мне нужно - это программный способ (используя файл с кодом C#), изменяющий текущую отображаемую страницу после 10/15 секунд или около того, очевидно, если это возможно в области gridview. Я прицепнулся, используя javascript (и не удалось в jquery) прокрутки gridview в div, однако это не сработало, как ожидалось.

Может ли кто-нибудь указать мне подходящий пример? Я не могу найти кого-либо еще, запрашивающего эту функцию, через быстрый Google. Любая помощь/совет, как исправить эту проблему, будет с благодарностью!

Gridview Код:

<asp:GridView ID="GridView1" ShowHeader="False" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" 
GridLines="None" CellPadding="2" Font-Size="35pt" AllowPaging="True" PageSize="9"> 
<Columns> 
<asp:BoundField DataField="ID" HeaderText="ID" SortExpression="ID"> 
<ItemStyle Width="15%" /> 
</asp:BoundField> 
<asp:BoundField DataField="ASSIGNEES" HeaderText="ASSIGNEES" SortExpression="ASSIGNEES"> 
<ItemStyle Width="32%" Wrap="false"/> 
</asp:BoundField> 
<asp:BoundField DataField="title" HeaderText="title" SortExpression="title"> 
<ItemStyle Width="53%" Wrap="false"/> 
</asp:BoundField> 
</Columns> 
</asp:GridView> 

SqlDataSource Код:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:FPConnectionString %>" SelectCommand="HDMonitoringOutstandingToday" SelectCommandType="StoredProcedure"></asp:SqlDataSource> 

Printscreen древесных плит:

wallboard example.JPG

ответ

2

Вы можете попробовать что-то вроде этого в таймере.

if(GridView1.PageIndex == GridView1.PageCount) 
{ 
    GridView1.PageIndex = 0; 
} 
else 
{ 
    GridView.PageIndex = GridView.PageIndex + 1; 
} 

Я не могу вспомнить, если вам нужно будет добавить его к PageIndex или нет.

Но в любом случае, свойства, с которыми вам нужно работать, - это PageIndex и PageCount.

+0

Приветствия! Утром я пойду. Я думаю, что мне придется использовать еще один таймер ajax, чтобы пометить промежуток между галочкой обновления главной страницы (если вы меня достали) – carlhunt3r

+0

Мне пришлось изменить код примера, чтобы получить оператор if if (GridView1.PageIndex == (GridView1.PageCount - 1)), поскольку PageCount - это нулевой список! CHEERS: D – carlhunt3r

0
GridView.PageIndex 

Вы можете изменить страницы, установив PageIndex, как вы делаете это до вас увидеть здесь несколько примеров: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.pageindex.aspx

+0

Отлично, спасибо! Могу ли я получить количество страниц, поместить их в массив и перебрать в ontick событие таймера? – carlhunt3r

+0

Число страниц - GridView.PageCount, но вам не нужно помещать их в массив, если вы используете OnTick, вы можете просто сделать GridView.PageIndex = GridView.PageIndex + 1, убедитесь, что вы не переходите по номеру страниц, так что сделайте проверку, если pageindex равно pagecount, тогда вы должны вернуться на страницу 1. – kyndigs

Смежные вопросы