私はupdatepanel内にgridviewを持っており、jqueryを使用してページメソッドを呼び出すjavascriptを持っています。私はajax呼び出しから受け取るパラメータに基づいてグリッドビューを更新するページメソッドをしたいと思います。私が持っているaspxページではページメソッドを使用したajax
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
})
};
2):
が1)JavaScriptでは、ページメソッドを呼び出す機能があります:
はこれまでのところ、私は次のことを持っています
public partial class Pages_CallHistory : System.Web.UI.Page
{
List<ViewCallHistoryModel> 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.
}
:後ろのコードで
<asp:UpdatePanel ID="MyPanel" runat="server">
<ContentTemplate>
<asp:GridView ID="MyGrid">
3)
私がページメソッドでしたいのは、1)LoadCallHistoryを新しい日付パラメータで呼び出し、2)TheCallHistoryにある新しいデータで再グリッドするようにgridview MyGridに指示します。
私はこのページメソッドで苦労しています。それは動作していないと私は立ち往生している。これはどうですか?
なぜ失敗しますか?結果は何ですか?ブレークポイントを入れてデバッグモードでコードをステップ実行して、 'TheCallHistory'に必要なデータがあることを確認しましたか?また、Listのようなソースにgridviewをバインドできることは確かですか? –
私はポストできるほど多くのページがありますが、一言で言えば、すべてがページの負荷で動作します。また、更新パネル内にソートやページングがあり、リフレッシュせずに動作します。これまで私が持っているページメソッドでは:\t \t var test = new Page_CallHistory(); \t \t test.LoadCallHistory(TheNewDate.Date); \t \t \t \t MyGridをバインドしてページに移動する必要があります。 – frenchie