C# 要在页面加载后进行中继器数据绑定吗
我使用一个web服务API来提取json数据,然后将其转换为Dataset,并在页面加载中将数据显示到REPEATER中。现在我的问题是,有没有一种方法我可以先加载页面,然后它会显示一条消息,比如加载,请稍候,然后所有的处理,比如拉取数据和在中继器中显示。asp.net页面生命周期中是否有类似的事件。在asp.net生命周期中没有类似的事件,尽管您可以使用.net控件(更新面板、计时器等)设计一些东西,但更合理的解决方案可能是简单地使用AJAX和C# 要在页面加载后进行中继器数据绑定吗,c#,asp.net,repeater,C#,Asp.net,Repeater,我使用一个web服务API来提取json数据,然后将其转换为Dataset,并在页面加载中将数据显示到REPEATER中。现在我的问题是,有没有一种方法我可以先加载页面,然后它会显示一条消息,比如加载,请稍候,然后所有的处理,比如拉取数据和在中继器中显示。asp.net页面生命周期中是否有类似的事件。在asp.net生命周期中没有类似的事件,尽管您可以使用.net控件(更新面板、计时器等)设计一些东西,但更合理的解决方案可能是简单地使用AJAX和 通常,您也可以省略服务器端转发器的外壳元素,只填
通常,您也可以省略服务器端转发器的外壳元素,只填充本机客户端HTML元素。在ASP.NET生命周期中没有类似的事件,尽管您可以设计一些.NET控件(更新面板、计时器等)但一个更合理的解决方案可能是简单地使用AJAX和
通常,您也可以省略服务器端转发器的外壳元素,只填充纯客户端HTML元素。我建议您更改策略。使用经典的AJAX(jQuery)+html/css代替将ASP服务器控件及其事件与AJAX混合使用 您的中继器将是一个简单的div
<div id="DataWrapper">
<div id="loadingLabel" style="display:none;">Loading...</div>
<div id="DataContainer">
</div>
</div>
在JavaScript中,创建一个调用此服务的函数:
//但是在那次呼叫之前,显示装载量。。标签
$('#loadingLabel').show();
$.ajax({
type: 'POST',
url: '/' + 'GetMyData',
data: {'KeyID':'8'},
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 30000,
success: onSuccess,
error: onError
});
..并在JavaScript中循环结果:
function onSuccess(result)
{
var src = result.d;
for (var post in src) {
/*
here you can create an JavaScript element and assign a CSS class to it
*/
$("#DataContainer").append('<div class="myClass">'+ src[post].someName+'</div>');
}
// when loading is finished hide the loading.. label
$('#loadingLabel').hide();
}
这当然只是一个非常简短的回答,但我希望它能给你一些大概的想法。这是一个非常轻量级的解决方案,您会发现它比混合使用ASPs中继器和更新面板等更有效
要获得有关性能的真实数字,请安装Fiddler并进行比较
此外,请查看这篇非常有用的文章,其中包含一些非常有用的建议:
我建议你改变策略。使用经典的AJAX(jQuery)+html/css代替将ASP服务器控件及其事件与AJAX混合使用 您的中继器将是一个简单的div
<div id="DataWrapper">
<div id="loadingLabel" style="display:none;">Loading...</div>
<div id="DataContainer">
</div>
</div>
在JavaScript中,创建一个调用此服务的函数:
//但是在那次呼叫之前,显示装载量。。标签
$('#loadingLabel').show();
$.ajax({
type: 'POST',
url: '/' + 'GetMyData',
data: {'KeyID':'8'},
contentType: "application/json; charset=utf-8",
dataType: "json",
timeout: 30000,
success: onSuccess,
error: onError
});
..并在JavaScript中循环结果:
function onSuccess(result)
{
var src = result.d;
for (var post in src) {
/*
here you can create an JavaScript element and assign a CSS class to it
*/
$("#DataContainer").append('<div class="myClass">'+ src[post].someName+'</div>');
}
// when loading is finished hide the loading.. label
$('#loadingLabel').hide();
}
这当然只是一个非常简短的回答,但我希望它能给你一些大概的想法。这是一个非常轻量级的解决方案,您会发现它比混合使用ASPs中继器和更新面板等更有效
要获得有关性能的真实数字,请安装Fiddler并进行比较
此外,请查看这篇非常有用的文章,其中包含一些非常有用的建议:
你应该重新考虑改变计划。中继器是一个只在服务器端工作的asp控制器。您希望在不显示数据的情况下显示页面,并使用不存在且不是已知元素的repeater在客户端加载数据。您应该重新考虑更改计划。中继器是一个只在服务器端工作的asp控制器。您希望在不显示数据的情况下显示页面,并使用不存在且不是已知元素的repeater在客户端加载数据。使用泛型类型“System.Collections.generic.IEnumerable”获取错误需要1个类型参数,用于使用泛型类型“System.Collections.generic.IEnumerable”获取错误需要1个类型参数用于使用IEnumerable的类型参数