• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 327
  • Last Modified:

Gridview update

I am trying to get the following code to update according to a defined timer.  It initializes in the page fine, but does not update according to the timer.

Can anyone help?

Thanks

<asp:View ID="View7" runat="server" ViewStateMode="Enabled">
                    <asp:UpdatePanel ID="UpdatePanel3" runat="server">
                    <ContentTemplate>
                       
                        <table style="width: 100%; height: 20%" cellpadding="0" cellspacing="0">
                                <tr valign="top">
                                    <td style="width: 100%">
                                                                         
                                        <asp:GridView ID="GridView1" runat="server" BorderColor="Gray" BackColor="Gray"
                                        BorderStyle="Inset" BorderWidth="2px" AlternatingRowStyle-BackColor="#CCCCCC"
                                        CssClass="DataGridViewStyle" ForeColor="#FFFFCC" Width="100%" PageSize="10"
                                        HeaderStyle-CssClass="GridViewHeadStyle"
                                        HeaderStyle-BackColor="#336699" HeaderStyle-ForeColor="#FFFFCC"
                                        HeaderStyle-BorderStyle="Inset" HeaderStyle-BorderColor="#CCCCCC"
                                        HeaderStyle-BorderWidth="2" UseAccessibleHeader="False" CaptionAlign="Top"
                                        HeaderStyle-Width="100%" AllowPaging="True" AllowSorting="False"
                                        ViewStateMode="Enabled" DataSourceID="SqlDataSource4"
                                        >
                                        <AlternatingRowStyle BackColor="#999999" />
                                        <HeaderStyle BackColor="#336699" Height="30px"  />
                                           <%-- <asp:dropdownlist id="PageDropDownList"
                                              autopostback="true"
                                              onselectedindexchanged="PageDropDownList_SelectedIndexChanged"
                                              runat="server"/>--%>
                                   
                                    </asp:GridView>
                                   
                                    <asp:Timer ID="Timer8" runat="server" Interval='500'>
                                    </asp:Timer>
                                    </td>                                    
                                </tr>                                
                        </table>
                        </ContentTemplate>
                     </asp:UpdatePanel>
            </asp:View>      
0
rckrch
Asked:
rckrch
  • 5
  • 5
1 Solution
 
junkymail1Commented:
I assume you are trying to update the data on the grid?  To do that properly you must handle the timer event properly.

ASP Code:
<asp:Timer ID="Timer" runat="server" Interval="7000" ontick="Timer1_Tick"></asp:Timer>      

C# Code (Handle Event):
protected void Timer1_Tick(object sender, EventArgs e)
 {
            UpdateGrid();
 }

Also, you can wrap the Grid in an update panel and update the grid without a page refresh.  Makes just the grid update and not the page reload.  Just a suggestion. Let me know if you want an example.
0
 
rckrchAuthor Commented:
I wraped the grid in an update panel as shown above.  This is what I was trying to do without relloading the enter page.  It has no effect.

I have other instances of using the timer in other areas of the page (not a gridview) with no problem, but this one with the GridView is not working.
0
 
junkymail1Commented:
Sorry, I didn't notice the panel.  

Just noticed you are missing the
<asp:ScriptManager ID="scriptMgr" runat="server" />      

You need this for the grid to update.
0
Has Powershell sent you back into the Stone Age?

If managing Active Directory using Windows Powershell® is making you feel like you stepped back in time, you are not alone.  For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why.

 
junkymail1Commented:
Also, I have seen a few problems with updating the panel from the SQLDataView straight from the Grid.  Have your tried to update the panel from the codebehind like my example?  I haven't had any problems with updating the grid from there.
0
 
rckrchAuthor Commented:
I have the <asp:ScriptManager ID="scriptmgr" runat="server"/> earlier in the page.

I tried this code in the code behind - will not work.  I am using vb.net so I don't know how your example would translate.

Thanks for the help.

Protected Sub Timer8_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer8.Tick
        SqlDataSource4.DataBind()

    End Sub
0
 
junkymail1Commented:
Looking at your code, noticed the Interval='500', is in single quotes. It should be double quotes, like Interval="500". Did you try that?
0
 
rckrchAuthor Commented:
Putting it in double quotes did not change anything.
0
 
rckrchAuthor Commented:
I put in databind() in the page load for the gridview, but I got an error for invalid DateTime, wrong word at index 0.  Then I put in a error handler and it works fine now.

Why would this be.  If I get an error for one of the columns in the grid why would all the data show up correctly in the grid if I ingnore the error?

Thanks for the help.
0
 
junkymail1Commented:
I know that error well.  It just means the row item could not be converted to a date/time.  It usually means a string format problem.  Is the date/time in a string format?  All the data should be there if the data is bound, just the null or strings that can't be converted should not be showing properly.  It also depends on how you bind the data, if you are handling the ItemDataBound event, it could be related to that.  Otherwise the default bind is all except nulls, which is probably why all the data is showing up, converting the date/time is coming back null.
0
 
rckrchAuthor Commented:
Thanks

I am using GridView1.DataBind().  The DateTime column is in the DateTime format the database.  Do I need to convert it to make sure I have no errors?  Could this cause a problem down the road?  There really is not a chance of null values in the records.

Thanks for the help.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

  • 5
  • 5
Tackle projects and never again get stuck behind a technical roadblock.
Join Now