C# 如何在asp.net中动态地将数据分配给控件
我有一个转发器控件,它将显示100000条消息,我不想使用不同的页面向用户显示所有消息。。相反,我希望在用户向下滚动时加载,而不是一次加载所有消息 例如:Facebook timeline 谢谢 编辑:我尝试的:C# 如何在asp.net中动态地将数据分配给控件,c#,asp.net,C#,Asp.net,我有一个转发器控件,它将显示100000条消息,我不想使用不同的页面向用户显示所有消息。。相反,我希望在用户向下滚动时加载,而不是一次加载所有消息 例如:Facebook timeline 谢谢 编辑:我尝试的: <script type="text/javascript"> $(document).ready(function e() { $(window).scroll(function () { if ($
<script type="text/javascript">
$(document).ready(function e() {
$(window).scroll(function () {
if ($(window).scrollTop() == $(document).height() - $(window).height()) {
GetRecords();
}
});
function GetRecords() {
$("#loader").show();
$.ajax({
type: "POST",
url: "Demo.aspx/GetList",
data: {},
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert("Failure");
},
error: function (response) {
alert("Error");
}
});
}
function OnSuccess(response) {
$.map(response.d, function (item) {
$('#division').append("<div style='line-height:25px;'>" + item + "</div>");
});
$("#loader").hide();
}
});
</script>
$(文档).ready(函数e(){
$(窗口)。滚动(函数(){
if($(窗口).scrollTop()==$(文档).height()-$(窗口).height()){
GetRecords();
}
});
函数GetRecords(){
$(“#加载程序”).show();
$.ajax({
类型:“POST”,
url:“Demo.aspx/GetList”,
数据:{},
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:一旦成功,
故障:功能(响应){
警报(“故障”);
},
错误:函数(响应){
警报(“错误”);
}
});
}
函数OnSuccess(响应){
$.map(response.d,函数(项){
$(“#除法”)。追加(“+项+”);
});
$(“#加载程序”).hide();
}
});
代码隐藏
public partial class Demo : System.Web.UI.Page
{
static List<string> list = new List<string>();
static int n=0;
protected void Page_Load(object sender, EventArgs e)
{
n = 0;
}
public Demo()
{
for (int i = 1; i <= 1000; i++)
{
list.Add("List Item : " + i);
}
}
[WebMethod]
public static List<string> GetList()
{
var fiftyItems = list.Skip(n).Take(50);
n = n + 50;
return fiftyItems.ToList();
}
}
公共部分类演示:System.Web.UI.Page
{
静态列表=新列表();
静态int n=0;
受保护的无效页面加载(对象发送方、事件参数e)
{
n=0;
}
公共演示()
{
对于(inti=1;i,这将是一个相当大的挑战,因为您需要重新绑定repeater控件以显示其他消息
您可以将转发器嵌入到UpdatePanel中,并在用户到达消息末尾时重新绑定。但是,要显示的消息越多,检索的次数就越多,重新呈现所需的时间也就越长。因此,可能会出现明显的延迟
相反,您可能希望使用jQuery或其他支持Ajax的框架在每次需要添加更多消息时从服务器获取另一个消息块,并将其添加到页面中,而无需重新呈现整个转发器中的全部消息。我将根据需要更改Ajax调用以加载aspx页面(html代码)