У меня есть gridview внутри обновленной панели, и у меня есть javascript, который вызывает метод страницы с использованием jquery. Я хотел бы, чтобы метод страницы обновлял gridview на основе параметра, который он получает от вызова ajax.ajax с методом страницы
До сих пор у меня есть следующие:
1) в JavaScript, есть функция, которая вызывает метод страницы:
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) На странице ASPX я имею:
<asp:UpdatePanel ID="MyPanel" runat="server">
<ContentTemplate>
<asp:GridView ID="MyGrid">
3) В коде позади:
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.
}
То, что я хотел бы сделать в методе страницы, - это 1) вызвать LoadCallHistory с новым параметром даты и 2) сообщить gridview MyGrid для повторного связывания с новыми данными, которые находятся в TheCallHistory.
Я борюсь с этим способом страницы; он не работает, и я застрял. Как это делается?
Почему это не удается? Какие результаты вы получаете? Вы пытались поставить контрольные точки и переходить через код в режиме отладки, чтобы убедиться, что «TheCallHistory» имеет данные, которые он должен иметь? Кроме того, уверены ли вы, что gridview может привязываться к источнику, например List? –
На странице больше, чем я мог бы опубликовать, но в двух словах, да, все работает на загрузке страницы. Существует также сортировка и подкачка внутри панели обновления, которая работает без обновления. До сих пор в методе страницы у меня: \t \t var test = new Pages_CallHistory(); \t \t test.LoadCallHistory (TheNewDate.Date); \t \t \t \t Мне нужно связать MyGrid и получить его на странице. – frenchie