Doğrulama Denetimleri ile TextBoxWatermark Kullanma (VB)

Christian Wenz tarafından

PDF’yi İndir

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

Doğrulayıcı alanda metin olmadığından şikayet ediyor (Tam boyutlu görüntüyü görüntülemek için tıklayın)