rckrch
asked on
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-BackCo lor="#CCCC CC"
CssClass="DataGridViewStyl e" ForeColor="#FFFFCC" Width="100%" PageSize="10"
HeaderStyle-CssClass="Grid ViewHeadSt yle"
HeaderStyle-BackColor="#33 6699" HeaderStyle-ForeColor="#FF FFCC"
HeaderStyle-BorderStyle="I nset" HeaderStyle-BorderColor="# CCCCCC"
HeaderStyle-BorderWidth="2 " UseAccessibleHeader="False " CaptionAlign="Top"
HeaderStyle-Width="100%" AllowPaging="True" AllowSorting="False"
ViewStateMode="Enabled" DataSourceID="SqlDataSourc e4"
>
<AlternatingRowStyle BackColor="#999999" />
<HeaderStyle BackColor="#336699" Height="30px" />
<%-- <asp:dropdownlist id="PageDropDownList"
autopostback="true"
onselectedindexchanged="Pa geDropDown List_Selec tedIndexCh anged"
runat="server"/>--%>
</asp:GridView>
<asp:Timer ID="Timer8" runat="server" Interval='500'>
</asp:Timer>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:View>
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-BackCo
CssClass="DataGridViewStyl
HeaderStyle-CssClass="Grid
HeaderStyle-BackColor="#33
HeaderStyle-BorderStyle="I
HeaderStyle-BorderWidth="2
HeaderStyle-Width="100%" AllowPaging="True" AllowSorting="False"
ViewStateMode="Enabled" DataSourceID="SqlDataSourc
>
<AlternatingRowStyle BackColor="#999999" />
<HeaderStyle BackColor="#336699" Height="30px" />
<%-- <asp:dropdownlist id="PageDropDownList"
autopostback="true"
onselectedindexchanged="Pa
runat="server"/>--%>
</asp:GridView>
<asp:Timer ID="Timer8" runat="server" Interval='500'>
</asp:Timer>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:View>
ASKER
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.
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.
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.
Just noticed you are missing the
<asp:ScriptManager ID="scriptMgr" runat="server" />
You need this for the grid to update.
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.
ASKER
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
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
Looking at your code, noticed the Interval='500', is in single quotes. It should be double quotes, like Interval="500". Did you try that?
ASKER
Putting it in double quotes did not change anything.
ASKER
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.
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.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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.
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.
ASP Code:
<asp:Timer ID="Timer" runat="server" Interval="7000" ontick="Timer1_Tick"></asp
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.