gpt4 book ai didi

c# - 通过静态方法访问页面对象

转载 作者:行者123 更新时间:2023-11-30 18:37:19 26 4
gpt4 key购买 nike

我正在使用 asp.net 日期选择器。然后当用户通过 jquery 单击日期时执行静态事件,如下所示:

 <script>
$(document).ready(function () {
$("#datepicker").datepicker({
onSelect: function (dateText, inst) {
$("#<%= lblDate.ClientID %>").text("Are available on " + $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val());

$.ajax({
type: "POST",
url: "Schedule.aspx/DisplayAvail",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do something interesting here.
}
});
}
});
});
</script>

代码隐藏:

[WebMethod] 
public static void DisplayAvail()
{
//Grab data from db to check avail from this date
}

效果很好。但是,无法从这个静态方法访问页面级对象。如何将数据从此方法发送到页面?

最佳答案

看这里。你可以通过 NuGet 得到它

http://james.newtonking.com/projects/json-net.aspx

将 NewtonSoft Json dll 添加为对包含 web 方法的项目的引用后,您可以使用 JSONConvert 序列化可用日期并将其发送到客户端。

public IEnumerable<string> AvailableData {get; set;}

[WebMethod]
public static void DisplayAvail()
{
this.AvailableData = GetRequiredData();
this.AvailableData = JSONConvert.SerializeObject(this.AvailableData);
}

在客户端,您可以:

$(document).ready(function () {
$("#datepicker").datepicker({
onSelect: function (dateText, inst) {
$("#<%= lblDate.ClientID %>").text("Are available on " + $('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' }).val());
$.ajax({
type: "POST",
url: "Schedule.aspx/DisplayAvail",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
var arr = <%= this.AvailableData %>;
$.each(arr, function(index, value) {
// Do something with the data
});

});
}
});
}
});
});

关于c# - 通过静态方法访问页面对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12931143/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com