任何人都可以幫忙嗎?ASP.NET:混合服務器控件與客戶端控件?
我通常使用服務器控件,即文本框,所以我可以訪問服務器端事件。
但是,如果我不需要訪問服務器端事件,並且我將在文本框中放置一些jquery或javascript例如。
我可以使用標準HTML(客戶端控件)嗎?
這是好的做法還是不行?
在此先感謝
任何人都可以幫忙嗎?ASP.NET:混合服務器控件與客戶端控件?
我通常使用服務器控件,即文本框,所以我可以訪問服務器端事件。
但是,如果我不需要訪問服務器端事件,並且我將在文本框中放置一些jquery或javascript例如。
我可以使用標準HTML(客戶端控件)嗎?
這是好的做法還是不行?
在此先感謝
你可以使用簡單的HTML標準的控制,但如果你想在ASP.NET控件值的訪問,那麼你將不得不增加RUNAT =「服務器標記」見下文
<input type="text" runat="server" id="mytxtbox" name="mytxtbox">
如果你真的想使用HTML控件,你可以使用它們。但如果您試圖在服務器端訪問它們,它將使您的生活易於使用標準的ASP.NET控件。
如果你想使用JavaScript,以及那麼你可以使用像
var mytxtele = document.getElementById('<%= mytxtbox.ClientID %>')
這就是你如何能得到textbox元素,並在JavaScript中發揮它來訪問這些控件。
這上面的代碼是一個基本的想法,要看你怎麼想它的工作
1)如果控制不打算在服務器端進行訪問,避免使用服務器控件。
2)使用服務器控件時,它貫穿整個生命週期,從初始化到渲染並最終卸載。
3)它還保存視圖狀態的內存限制。
是的,你可以使用標準的HTML控件,但是asp.net控件更加靈活,並且每個控件類型都會有相同的html輸出。 如果你需要使用jQuery和你有控制ID的問題,請參閱文檔,因爲你可以寫這樣的事情(在asp.net標籤猜想的JQuery):
$('#<%=this.clientId%>').style.display = 'block';
無論如何,我敢肯定,有是JQuery調用單個對象的方法,當知道他的ID名稱的一部分時(但我不記得如何.. :))
+1。如果不需要從C#/ VB訪問標準HTML輸入字段,那麼這是一個很好的做法。事實上,如果你想分割頭髮,它可能會減少服務器處理時間。 – LesterDove 2010-11-03 15:42:49
謝謝你們..我正在尋找的東西 – Martin 2010-11-03 15:44:07