Doğrulama Denetimleri ile TextBoxWatermark Kullanma (VB)
Christian Wenz tarafından
AJAX Denetim Araç Seti'ndeki TextBoxWatermark denetimi, metin kutusunu genişleterek kutunun içinde bir metin görüntülenmesini sağlar. Kullanıcı kutuya tıkladığında boşaltılır. Kullanıcı metin girmeden kutudan ayrılırsa, önceden doldurulmuş metin yeniden görünür. Bu, aynı sayfadaki ASP.NET Doğrulama Denetimleri ile çakılabilir, ancak bu sorunlar aşılabilir.
Genel Bakış
TextBoxWatermark
AJAX Denetim Araç Seti'ndeki denetim, metin kutusunu genişleterek kutunun içinde bir metin görüntülenmesini sağlar. Kullanıcı kutuya tıkladığında boşaltılır. Kullanıcı metin girmeden kutudan ayrılırsa, önceden doldurulmuş metin yeniden görünür. Bu, aynı sayfadaki ASP.NET Doğrulama Denetimleri ile çakılabilir, ancak bu sorunlar aşılabilir.
Adımlar
Örneğin temel kurulumu aşağıdaki gibidir: TextBox
denetim, denetim kullanılarak TextBoxWatermarkExtender
filigranlanır. Bir düğme geri göndermeyi tetikler ve daha sonra sayfadaki doğrulama denetimlerini tetiklemede kullanılır. Ayrıca, ASP.NET AJAX'ı başlatmak için bir ScriptManager
denetim gerekir:
<form id="form1" runat="server">
<asp:ScriptManager ID="asm" runat="server" />
<div>
<asp:TextBox ID="Name" runat="server" /> <br />
<asp:Button ID="btn" runat="server" Text="Submit" OnClick="btn_Click" /><br />
<asp:Label ID="lbl" runat="server" />
</div>
<ajaxToolkit:TextBoxWatermarkExtender ID="tbwe" runat="server"
TargetControlID="Name" WatermarkText=" Your Name " />
</form>
Şimdi, form gönderildiğinde alanda metin olup olmadığını denetleyebilen bir RequiredFieldValidator
denetim ekleyin. InitialValue
Doğrulayıcının özelliği, denetimde TextBoxWatermarkExtender
kullanılan değere ayarlanmalıdır: Form gönderildiğinde, değişmemiş bir metin kutusunun değeri, içindeki filigran değeridir:
<asp:RequiredFieldValidator ID="rfv1" ControlToValidate="Name"
Text="*" InitialValue=" Your Name " Display="Dynamic" runat="server" />
Ancak bu yaklaşımda bir sorun vardır: İstemci JavaScript'i devre dışı bırakırsa, metin alanı filigran metniyle RequiredFieldValidator
önceden doldurulmadığından hata iletisi tetiklenmez. Bu nedenle, boş bir metin kutusunu denetleyen (özniteliği atlayanInitialValue
) ikinci RequiredFieldValidator
bir denetim gereklidir.
<asp:RequiredFieldValidator ID="rfv2" ControlToValidate="Name"
Text="*" Display="Dynamic" runat="server" />
Her iki doğrulayıcı da kullandığından Display
="Dynamic"
, son kullanıcı iki doğrulayıcının tetiklendiği görsel görünümden ayırt edemez; bunun yerine, bunlardan yalnızca biri varmış gibi görünür.
Son olarak, bir doğrulayıcı hata iletisi vermemişse alandaki metnin çıkışını almak için sunucu tarafı kodu ekleyin:
<script runat="server">
Protected Sub btn_Click(ByVal sender As Object, ByVal e As System.EventArgs)
lbl.Text = HttpUtility.HtmlEncode(Name.Text)
End Sub
</script>
Doğrulayıcı alanda metin olmadığından şikayet ediyor (Tam boyutlu görüntüyü görüntülemek için tıklayın)