ajax with page method
<p>I have a gridview inside an updatepanel and I have a javascript that calls a page method using jquery. I'd like the page method to refresh the gridview based on the parameter it receives from the ajax call.</p>

<p>So far, I have the following:</p>

<p>1) in the javascript, there's a function that calls the page method:</p>

<pre><code>function GetNewDate(thedateitem) {

    DateString = (valid json date format that works)

    $.ajax({
        type: "POST",
        url: "./CallHistory.aspx/ResetDate",
        contentType: "application/json; charset=utf-8",
        data: DateString,
        dataType: "json",
        success: successFn,
        error: errorFn
    }) 
};
</code></pre>

<p>2) In the aspx page I have:</p>

<pre><code>    &lt;asp:UpdatePanel ID="MyPanel" runat="server"&gt;
        &lt;ContentTemplate&gt;
                &lt;asp:GridView ID="MyGrid"&gt;
</code></pre>

<p>3) In the code behind:</p>

<pre><code>public partial class Pages_CallHistory : System.Web.UI.Page
{
    List&lt;ViewCallHistoryModel&gt; TheCallHistory;

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            TheDate = new DateTime(2011, 1, 13);
            LoadCallHistory(TheDate);
            MyGrid.Datasource = TheCallHistory;
            MyGrid.Databind;
        }
    }

    protected void LoadCallHistory(DateTime TheDate)
    {
        linq query that fills the variable TheCallHistory
    }

    [WebMethod]
    public static void ResetDate(DateTime TheNewDate)
    {
        var test = new Pages_CallHistory();
        var test2 = test.LoadCallHistory(TheNewDate.Date);
        //test2 loads fine

        test.GridCallHistory.DataSource = test2; 
        //this is not underlined but bugs at runtime
        //Object reference not set to an instance of an object.

        test.GridCallHistory.DataBind();
        test.MyPanel.Update(); 
        //this is not underlined but doesn't get executed because
        //because it stops at the line above

        //I'd like to update the content of 
        //the gridview on the page with the updated gridview.
    }
</code></pre>

<p>What I'd like to do in the page method is 1) call LoadCallHistory with the new date parameter and 2) tell the gridview MyGrid to rebind with the new data that's in TheCallHistory.</p>

<p>I'm struggling with this page method; it's not working and I'm stuck. How is this done?</p>
