Вам нужно будет сделать Ajax-вызов, чтобы сделать это.
Теперь у вас есть возможность позвонить в AJAX:
1 - вызов через веб-службу SOAP (для каждого веб-метода потребуется ссылка на ASP AjaxScriptManager).
2- Позвоните через службу WCF в качестве предыдущего ответа.
3 - звонок через службу отдыха.
4- Вызовите через Jjery ajax метод, но запрос должен идти на внешнюю страницу, такую как «Actions.aspx», поэтому, когда вы вызываете ваш метод, HTTPRequest будет сделан на странице Actions, тогда в ответе будут возвращены данные. $.Ajax(url,data,action,successMethod); // this is the fastest way I tried them all.
Вот что вы должны сделать:
1- на событии вкладки изменения вызовите ваш метод, используя соответствующий метод вызова Ajax из указанных выше вариантов.
2 - из метода успеха используйте возвращенные данные, но для объектов DataTime лучше использовать eval (data).
Вот пример, объясняющий, как сделать этот вызов:
var helper = {
callAjax: function(sentData, successFun) {
jQuery.ajax({
url: "/Actions.aspx",
type: "Get",
data: sentData,
cache: true,
dataType: "json",
success: successFun
});
}
};
helper.callAjax('request=getCities&countryID=' + countryID, function (args) {
var result = eval(args); // this object will contain the returned data
var htmlData = '';
for (var i=0;i<result.length;i++){
// write your HTML code by jQuery like this
htmlData += '<div>' + result[i].title + '</div>';
}
$('#tab3').html(htmlData);
});
теперь в коде Actions.ASPX используйте следующее:
protected void Page_Load(object sender, EventArgs e)
{
object _return = new
{
error = "",
status = true
};
JavaScriptSerializer _serializer = new JavaScriptSerializer();
if (!Page.IsPostBack)
{
string str = Request.QueryString["request"].ToString();
switch (str.ToLower())
{
case "getcities":
int countryID = Convert.ToInt32(Request.QueryString["countryID"].ToString());
_return = JQueryJson.Core.City.getAllCitiesByCountry(countryID).Select(_city => new
{
id = _city.ID,
title = _city.Name
});
_serializer = new JavaScriptSerializer();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "text/json";
Response.Write(_serializer.Serialize(_return));
break;
}
// etc........
}