вторник, 17 августа 2010 г.

Progress Info в любом месте экрана

Задача.
Отоброжать информацию пользователю о том что страница выполняет действия и процесс идет. Дабы пользователь не нервничал и приятно любовался либо сообщением либо симпатичной анимацией.
Решение.
Комбинация из UpdatePanel, UpdateProgress и AlwaysVisibleControlExtender.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">

  <ContentTemplate>
    <asp:UpdateProgress ID="UpdateProgress1" EnableViewState="false"    AssociatedUpdatePanelID="UpdatePanel1" runat="server">
       <ProgressTemplate>
           <img id="imgLoading" runat="server" src="LOADING.gif" alt="" />
      </ProgressTemplate>
    </asp:UpdateProgress>
    <cc1:AlwaysVisibleControlExtender ID="AlwaysVisibleControlExtender1" runat="server"
     TargetControlID="imgLoading"
     VerticalSide="Top"
     VerticalOffset="10"
     HorizontalSide="Center"
     HorizontalOffset="10"
     ScrollEffectDuration=".1"/>


.....


  </ContentTemplate>
</asp:UpdatePanel>

В результате картинка LOADING.gif будет показываться вверху экрана при каждом постбеке  формы обернутой в UpdatePanel

четверг, 12 августа 2010 г.

Реакция формы на Enter

Гораздо удобнее при поиске или логине пользоваться кнокой Enter вместо того чтобы отрывать руки от клавиатуры и тыцать мышкой. Как это реализовать? Просто.
Если у вас простая форма с одной кнопкой - то по нажатию Enter, атоматически сработает эта кнопка. Вообще - автоматически срабатывает первая по порядку кнопка в форме. Если нопка не перваяб тогда используем свойство defaultbutton для <form> или <asp:panel>. Тоесть устанавливаем либо для формы, либо оборачиваем нужную на группу в <asp:panel> и устанавливаем необходимое нам свойство.

<form defaultbutton=“btnLogin” runat=“server”>
   <asp:textbox id=“txtLogin” runat=“server”/>
   <asp:textbox id=“txtPassword” runat=“server”/>
   <asp:button id=“btnLogin” text=“Login” runat=“server”/>
</form>
или
<form runat=“server”>
  <asp:panel defaultbutton=“btnSearch”  runat=“server”>
     <asp:textbox id=“txtSearch” runat=“server”/>
     <asp:button id=“btnSearch” runat=“server”/>
  </asp:panel>
</form>