2013-12-10 4 views
-1

так что в основном я в процессе создания моего юнит-проекта, который является веб-сайтом электронной коммерции. одна из особенностей, которая важна для просмотра списка (например: список наблюдения в ebay)async button в listview

Теперь я уже заканчиваю разработку и удачу в добавлении/удалении записи db, но меня беспокоит то, что страница представляет собой задержку/публикацию страницы назад для каждого сохраненного/нажатого элемента. Я попытался добавить панель обновления, но при нажатии кнопки все еще есть задержка.

ниже моя копия кода

Design

<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> 

CodeBehind

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 roundtrip на сервер и сохраняя данные в БД) происходит в «фоне».

Смежные вопросы