TextBoxWatermarkExtender - замечательный контрольчик из AjaxControlToolkit который позоляет вешать на текстовые поле предварительные сообщения, информирующие пользователя о необходимых действиях.
Например.
...
<asp:TextBox ID="txtLogin" runat="server"></asp:TextBox>
<cc1:TextBoxWatermarkExtender ID="TBWERFALogNumber" runat="server"
TargetControlID="txtLogin"
WatermarkText="Type Login Here" />
....
Теперь при рендере у нас будет текстовое поле внутри которго будет сообщение "Type Login Here". При наведении фокуса на это поле, сообщение пропадает и у нас есть возможность ввести все что нам надо. Если ничего не ввели - то это сообщение появляется опять при потере фокуса текстовым полем.
После постбека спокойно обращаемся к TextBox не задумываясь о TextBoxWatermarkExtender. Если ничего не было введено, значение TextBox.Text будет пустым. TextBoxWatermarkExtender не окажет никакого влияния на TextBox.
Ситуация координально меняетеся если мы обернем наш контент в UpdatePanel.
....
<asp:UpdatePanel ID="upSH" runat="server">
<ContentTemplate>
...
<asp:TextBox ID="txtLogin" runat="server"></asp:TextBox>
<cc1:TextBoxWatermarkExtender ID="TBWELogin" runat="server"
TargetControlID="txtLogin"
WatermarkText="Type Login Here" />
...
</ContentTemplate>
</asp:UpdatePanel>
...
Теперь при постбеке, TextBox.Text всегда будет содержать значение того, что было написано в нем. Инными словами, если мы ничего не ввели в TextBox, значение TextBox.Text будет равно "Type Login Here" (так как этозначение было установленно туда контролом TextBoxWatermarkExtender ).
Теперь для того чтобы получить корректное значение введенных данных для TextBox , на постбеке необходимо сравнивать значение присутствующее в TextBox со значением установленным для TextBoxWatermarkExtender.
...
Dim result as String = String.Empty
If txtLogin.Text.Trim <> String.Empty Then
If Not txtBudgetCost.Text.Trim.Equals(TBWELogin.WatermarkText.Trim) Then
result = txtLogin.Text.Trim
End If
End If
....
После этого переменная result будет содержать корректные данные.
Комментариев нет:
Отправить комментарий