2010-11-03 140 views
0

任何人都可以幫忙嗎?ASP.NET:混合服務器控件與客戶端控件?

我通常使用服務器控件,即文本框,所以我可以訪問服務器端事件。

但是,如果我不需要訪問服務器端事件,並且我將在文本框中放置一些jquery或javascript例如。

我可以使用標準HTML(客戶端控件)嗎?

這是好的做法還是不行?

在此先感謝

回答

2

你可以使用簡單的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中發揮它來訪問這些控件。

這上面的代碼是一個基本的想法,要看你怎麼想它的工作

+2

+1。如果不需要從C#/ VB訪問標準HTML輸入字段,那麼這是一個很好的做法。事實上,如果你想分割頭髮,它可能會減少服務器處理時間。 – LesterDove 2010-11-03 15:42:49

+0

謝謝你們..我正在尋找的東西 – Martin 2010-11-03 15:44:07

1

1)如果控制不打算在服務器端進行訪問,避免使用服務器控件。

2)使用服務器控件時,它貫穿整個生命週期,從初始化到渲染並最終卸載。

3)它還保存視圖狀態的內存限制。

0

是的,你可以使用標準的HTML控件,但是asp.net控件更加靈活,並且每個控件類型都會有相同的html輸出。 如果你需要使用jQuery和你有控制ID的問題,請參閱文檔,因爲你可以寫這樣的事情(在asp.net標籤猜想的JQuery):

$('#<%=this.clientId%>').style.display = 'block'; 

無論如何,我敢肯定,有是JQuery調用單個對象的方法,當知道他的ID名稱的一部分時(但我不記得如何.. :))