新聞中心
ASP.NET異步回調開發(fā)實例淺析

ASP.NET異步回調的重要性:在實際開發(fā)中,ASP.NET 客戶端異步回調技術才是王道。下面我們進行 ASP.NET 開發(fā)重構以實現(xiàn)異步回調。
之前的HTML代碼示例中,onclick事件寫在了HTML中,現(xiàn)在從中移出至外部的JS。
- ﹤label﹥用戶名﹤/label﹥
- ﹤span﹥username value﹤/span﹥
- ﹤a href="#" id="divElem"﹥查看﹤/a﹥
- 在JavaScript代碼中給ajaxread方法加入了onclick事件處理:
- var divElem = document.getElementById('divElem');
- var span = document.getElementsByTagName('span');
- divElem.onclick = function()
- {
- span[0].innerHTML = result;
- return false;
- }
其中 result 是這個方法的傳值參數(shù)。
另外,還定義了一個處理回調時出錯的方法:
- function CallbackError(result)
- {
- alert(result);
- }
下面是ASP.NET異步回調之服務端程序的示例部分:
- public partial class _Default : Page,
- ICallbackEventHandler
- {
- public void RaiseCallbackEvent(string result)
- {
- }
- public string GetCallbackResult()
- {
- string username = usernameValue;
- return username;
- }
- protected void Page_Load(object sender,
- EventArgs e)
- {
- string callback =
- Page.ClientScript.GetCallbackEventReference(
- this, null, "ajaxread", null, "CallbackError", true);
- Page.ClientScript.RegisterStartupScript(
- this.GetType(), "_Default", callback, true);
- }
- }
其中 usernameValue 是數(shù)據(jù)處理的變量,具體實現(xiàn)代碼略。
程序編譯后,運行結果與之前用異步回傳是一致的,但代碼重構改為異步回調后,無論是程序可讀性,還是代碼精簡度,都提升了不少。
我通過Firebug觀察到客戶端代碼中的數(shù)據(jù)交互處理是文本(Text)而不是XML,這是 ASP.NET 默認的異步回調數(shù)據(jù)處理的方式吧。
在ASP.NET 服務端控件中就帶有Ajax特性的功能了,如 GridView 內帶了利用異步回調技術的分頁功能,這樣可以少寫了一些代碼量。
在 GridView 的屬性中設置:AllowPaging="true" EnableSortingAndPagingCallbacks="true"。數(shù)據(jù)綁定在 Page_Load事件和GridView控件的OnPageIndexChanging事件中調用。這樣的分頁是Ajax的異步回調的了。
下面是個實際運用中簡單的實例:根據(jù)下拉列表所選中項點擊“查看”按鈕后,顯示相應的數(shù)據(jù)。默認顯示所有的數(shù)據(jù)。
ASP.NET異步回調在程序中設計了兩個Gridview,一個顯示默認的所有數(shù)據(jù)、另一個顯示查詢后的數(shù)據(jù):
- ﹤span﹥按文章分類名稱:﹤/span﹥
- ﹤asp:DropDownList ID="ArticleTypeDD" runat="server"﹥
- ﹤/asp:DropDownList﹥
- ﹤asp:Button ID="SearchLB"
- OnClick="SearchLB_Click" Text="查看"
- runat="server" /﹥
- ﹤asp:GridView ID="grdArticles"
- AllowPaging="true" PageSize="15"
- EnableSortingAndPagingCallbacks="true"
- OnPageIndexChanging="grdArticles_PageIndexChanging"
- runat="server" /﹥
- ﹤asp:GridView ID="grdArticlesInType" AllowPaging="true"
- PageSize="15" EnableSortingAndPagingCallbacks="true"
- OnPageIndexChanging="grdArticlesInType_PageIndexChanging"
- runat="server" /﹥
ASP.NET異步回調之cs代碼部分:
- protected void Page_Load(object sender, EventArgs e)
- {
- grdArticles.DataSource = BindData();
- grdArticles.DataBind();
- grdArticlesInType.DataSource = BindData1();
- grdArticlesInType.DataBind();
- }
- protected void Page_PreRender(object sender,
- EventArgs e)
- {
- if (!IsPostBack)
- {
- ArticleTypeDD.DataSource = ArticleAccess.GetArticleTypeName();
- ArticleTypeDD.DataTextField = "ArticleTypeName";
- ArticleTypeDD.DataValueField = "ArticleTypeId";
- ArticleTypeDD.DataBind();
- }
- }
- protected void grdArticles_PageIndexChanging(
- object sender, GridViewPageEventArgs e)
- {
- grdArticles.PageIndex = e.NewPageIndex;
- grdArticles.DataSource = BindData();
- grdArticles.DataBind();
- }
- protected void grdArticlesInType_PageIndexChanging(
- object sender, GridViewPageEventArgs e)
- {
- grdArticlesInType.PageIndex = e.NewPageIndex;
- grdArticlesInType.DataSource = BindData1();
- grdArticlesInType.DataBind();
- }
- protected void SearchLB_Click(object sender,
- EventArgs e)
- {
- grdArticles.Visible = false;
- grdArticlesInType.Visible = true;
- grdArticlesInType.DataSource = BindData1();
- grdArticlesInType.DataBind();
- }
在這里,BindData()方法、BindData1()方法分別返回兩個GridView控件的數(shù)據(jù)綁定的DataTable對象實例。方法具體代碼略過。分頁運行結果是默認的分頁界面。
ASP.NET異步回調的基本內容就向你介紹到這里希望對你了解和學習ASP.NET異步回調有所幫助。
【編輯推薦】
- C#異步調用四大方法詳解
- C#網(wǎng)絡編程消息發(fā)送問題淺析
- C#異步傳輸字符串服務端的實現(xiàn)
- C#異步傳輸字符串客戶端的實現(xiàn)
- ASP.NET異步回調淺析
文章題目:ASP.NET異步回調開發(fā)實例淺析
鏈接URL:http://m.5511xx.com/article/dpcdegc.html


咨詢
建站咨詢
