我有按鈕頁面,我想通過異步的cliking按鈕加載數據2個數據網格。ASP.NET服務器不處理頁面異步
這是網頁的代碼,使用jQuery作出其他2頁,將產生HTML我電話。
<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Solutions_CashCenter_StockManagement_Test_Test" %>
<asp:Content ID="Content2" ContentPlaceHolderID="cphCenter" Runat="Server">
<style type="text/css">
#wait {
position:absolute;
top:0px;
right:10px;
width:200px;
z-index:1000;
vertical-align:middle;
text-align:center;
background: #febf00;
display:none;
}
</style>
<script src='<%= ResolveUrl("../../../../Scripts/jquery-1.4.1.js") %>' type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#wait')
.ajaxStart(function() { $(this).show(); })
.ajaxStop(function() { $(this).hide(); });
$('input:button').live('click', loadData);
});
function loadData() {
$.get("Source.aspx", {},
function (data) {
$('#a1').html(data);
},
"html");
alert('This alert is asynchronous (1st)');
$.get("Source2.aspx", {},
function (data) {
$('#a2').html(data);
},
"html");
alert('This alert is asynchronous (2nd)');
}
</script>
<div id="test13">
<input type="button" id="btnLoad" value="Load" />
</div>
<div id="a1"></div>
<div id="a2"></div>
<div id="wait">Please wait <img src="ajax-loading.gif" /></div>
</asp:Content>
然後我有2個aspx頁面,Source1.aspx和Source2.aspx。它們只包含一個gridDataView和OnLoad事件中的少量代碼。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Source.aspx.cs" Inherits="Solutions_CashCenter_StockManagement_Test_Source" %>
<form runat="server">
<cc1:GridDataView runat="server" ID="gridTest" >
</cc1:GridDataView>
<asp:SqlDataSource ID="dsTest" runat="server" ConnectionString="<%$ ConnectionStrings:WebPortalConnectionString %>"
ProviderName="<%$ ConnectionStrings:WebPortalConnectionString.ProviderName %>">
</asp:SqlDataSource>
</form>
服務器端:
Thread.Sleep(5000);
dsTest.SelectCommand = "SELECT 'test1', 'test2', 'test3'";
this.gridTest.DataSourceID = "dsTest";
this.gridTest.DataBind();
與同爲第二頁,但與網格不同的數據。
我有結果是,這兩個警報發生一次,但網格是一個加載後一個,那就是5秒後第一次出現網格,然後接連5秒第二個appers。 這就是服務器並沒有實際地同時處理它們。
我在做什麼錯了,我應該如何組織所有的工作,我需要什麼?
你是什麼意思下的 「頁面加載」?我沒有加載頁面,但做了一個Ajax請求 –
@VitaliiKorsakov ajax請求是在客戶端上異步加載頁面。你仍然加載一個頁面 - 我說的是在服務器上處理 - 而不是在客戶端瀏覽器上。由於會話鎖定,服務器上的處理被阻止。 – Aristos
@VitaliiKorsakov爲此頁面禁用會話,並且您看到它按預期工作。 – Aristos