2011-07-08 36 views
0

以前我只在應用程序上工作過,但現在我正在嘗試學習web開發。asp.net控件子類化(textbox水印)

實踐中,我想編寫一個文本框水印的實現 - 類似於asp.net ajax工具包中的TextBoxWatermark。我開始通過繼承現有的文本框控件,但我不知道在這之後要繼續。我看到,看起來有點像這個網站的許多例子:

<asp:Textbox id="tb" runat="server" value="Type in the code" onfocus="if (this.value == 'Type in the code') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Type in the code';}"></asp:Textbox> 

我想我的目標是使行爲像這樣控制:

<asp:Textbox id="tbCode" runat="server" watermarkValue="Type in the code"></asp:Textbox> 

使用JavaScript的東西莫名其妙地埋在類定義。例如,我不明白如何註冊新的屬性,或者去哪裏拋出這個javascript代碼。在我的實現中,我想確保當其他位代碼查詢文本內容的文本框時,不會返回水印文本,如果這是所有內容。 (在第一個例子中我很擔心)

我真的不知道從哪裏開始做這件事。有人可以解釋,或者指出我已經介紹過這個教程嗎?

+0

它不ANWER的問題,但是 - 我不會做新的控制,但我寧願與執行的JavaScript客戶端(服務器控件是醜陋的,因爲所有的網絡形式) –

回答

1

當用戶單擊文本框和其他視覺效果時,將使用javascript設置水印以清除它。使用RegisterClientScriptBlock可以將JavaScript注入到頁面中。這裏是JavaScript和ASP.NET相結合的綜合性文章:

http://msdn.microsoft.com/en-us/library/aa479011.aspx