2010-08-10 27 views
6

OK, może się to wydawać głupie, ale na formancie ASP.NET .ascx, próbuję użyć:Przycisk <input type = "" runat = "server" /> nie będzie działał w ASP.NET

<input type="button" runat="server" /> 

zamiast:

<asp:Button runat="server" /> 

I to nie działa dla mnie. Ten kod:

<asp:Button id="btnBuyCat" runat="server" Text="Buy Cat" 
ToolTip="Click to buy a cat" OnClick="btnBuyCat_Click" EnableViewState="false" /> 

świadczy następujący kod HTML: (pomijając pojemników nazewnictwa btw)

<input type="submit" id="btnBuyCat" name="btnBuyCat" value="Shopping Cart" 
title="Click to buy a cat" /> 

to głównie w porządku, z wyjątkiem chcę input type="button" nie input type="submit".

Próbowałem ten kod:

<input type="button" id="btnBuyCat" name="btnBuyCat" runat="server" 
value="Buy Cat" title="Click to buy a cat" onclick="btnBuyCat_Click" 
enableviewstate="False" /> 

i otrzymaj HTML:

<input type="button" id="btnBuyCat" name="btnBuyCat"" value="Buy Cat" 
title="Click to buy a cat" onclick="btnBuyCat_Click" /> 

Niestety wydanego przycisk nie działa. Co więcej, próbowałem nawet input type="submit" tylko po to, aby sprawdzić, ale jeśli nie używam , nie mogę go uruchomić. Jestem pewien, że ma to coś wspólnego z JavaScriptem.

Czy istnieje sposób na użycie standardowego znacznika przycisku HTML i narzędzia runat="server" w środowisku ASP.NET?

+1

spróbuj dodać identyfikator i spróbuj jeszcze raz – jwsample

+4

@Jeroen: Straszne? Dalej, przyjął odpowiedź na 3 z 5 kwalifikujących się pytań, a nie 300 na 500. – BalusC

+0

Nie martw się, Jeroen, jeśli mi pomożesz, będę cię uważał z wyższym głosowaniem i znacznikiem wyboru! Nie zadaję wielu pytań, a niektóre z nich nie mają rozwiązania! – JohnB

Odpowiedz

16

co tracisz to przycisk atrybut UseSubmitBehavior np

<asp:Button id="btnBuyCat" runat="server" Text="Buy Cat" 
UseSubmitBehavior="False" ToolTip="Click to buy a cat" 
OnClick="btnBuyCat_Click" EnableViewState="false" /> 

To daje regularny przycisku, a nie przedstawienia.

+0

** "PERFECT" ** dzięki! – JohnB

2

Czy próbowałeś:

<button type="button" id="btnBuyCat" name="btnBuyCat" value="Shopping Cart" 
title="Click to buy a cat" onclick="btnBuyCat_Click">Click Me!</button> 
+0

Po prostu próbowałam i nie działałam. Warto spróbować, ale +1 – JohnB

4

Aby określić wejściowy kontrolny runat = serwer, należy również podać identyfikator. Również błąd, który otrzymujesz, jest prawdopodobnie spowodowany błędem js. Zdarzenie onclick na standardowej kontroli html zakłada, że ​​zdefiniowana jest metoda skryptowa, podczas gdy wygląda na to, że chcesz wykonać operację typu odświeżenie. Twoja opcja jest zdefiniowanie funkcji javascript według nazwy metody dajesz do zdarzenia onclick lub użyj __doPostBack metodę jawnie wywołać odświeżenie

<input type="button" runat="server" id="btnTest" /> 
+0

Aby uwzględnić zachowanie odświeżania po kliknięciu, wykonasz

+0

+1 Fadrian, to jest odpowiedź, której oczekiwałem. Po prostu jeszcze nie zdałem sobie sprawy z tych drobniejszych punktów na temat ASP.NET. * (wisi na głowie ze wstydu) * Jednak wskazówka jball jest jeszcze prostsza w tym, co próbuję osiągnąć; w każdym razie dzięki! – JohnB

+0

Jeśli otrzymam Twoją sugestię, mogę dać ci znak wyboru, ponieważ pod względem technicznym odpowiedź wyjaśnia, dlaczego mój kod nie działa. Ale nadal używam jball, ponieważ jest to łatwiejsze. – JohnB

0

Można użyć:

btnBuyCat.ServerClick += new EventHandler(btnBuyCat_ServerClick); 
Powiązane problemy