2013-12-10 97 views
-1

所以基本上即時在創建我的單元項目,這是一個電子商務網站的過程。其中一個重要的功能是一個觀察名單(例如:在ebay觀看名單)列表視圖中的異步按鈕

現在我已經完成設計併成功添加/刪除數據庫記錄,但困擾我的是,該頁面是延遲/頁面發佈返回每個項目保存/點擊。我嘗試添加更新面板,但點擊按鈕時仍然存在延遲。

下面

是我的代碼的副本

設計

<listview> 
    <itemTemplate> 
    ...... 
    <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
      <ContentTemplate> 
       <asp:LinkButton ID="lnkSaved" class="btn-icon btn-white btn-star btn-radius" runat="server" CausesValidation="false" CommandName="ToggleSave"> 
        <span></span> 
        <asp:Label ID="lblSaved" runat="server" Text="Save Activity" AssociatedControlID="lnkSaved"></asp:Label> 
       </asp:LinkButton> 
      </ContentTemplate> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="lnkSaved" /> 
      </Triggers> 
    </asp:UpdatePanel> 
    ....... 
    </itemtemplate> 
</listview> 

代碼隱藏

protected void ListViewActivities_ItemCommand(object sender, ListViewCommandEventArgs e) 
    { 
     HiddenField hdnisSaved = e.Item.FindControl("hdnisSaved") as HiddenField; 
     HiddenField hdnActivityID = e.Item.FindControl("hdnActivityID") as HiddenField; 
     LinkButton lnkSaved = e.Item.FindControl("lnkSaved") as LinkButton; 
     Label lblSaved= e.Item.FindControl("lblSaved") as Label; 
     Guid userID = new MembershipHelper().GetProviderUserKey(WebSecurity.CurrentUserId); 

     if (Convert.ToBoolean(hdnisSaved.Value)) 
     { 
      lnkSaved.Attributes.CssStyle.Clear(); 
      if(Convert.toboolean(hdnisSaved.Value)) 
       { 
        lnkSaved.Attributes.Add("Class", "btn-icon btn-white btn-radius btn-star"); 
        lblSaved.Text ="Save"; 
       } 
      else 
       { 
        lnkSaved.Attributes.Add("Class", "btn-icon btn-white btn-radius btn-starred"); 
        lblSaved.Text ="Saved"; 
       } 
      new CustomerDAC().ToggleSave(userID,  Convert.ToInt32(hdnActivityID.Value,hdnisSaved.Value)); 
     } 
} 

你們可以給我一個方向,我應該怎麼做,因此用戶將有一個平穩體驗(異步首選)時點擊此按鈕。

回答

0

你可能要對其執行的JavaScript/jQuery的客戶端(瀏覽器端)的動作,然後同步在後臺的變化,從而使用戶的感知是立竿見影的,但緩慢的部分(HTTP往返於服務器和堅持數據到數據庫)發生在「背景」。