Tworzę aplikację przy użyciu ASP.Net, w której mam przycisk HTML na stronie aspx.
<input type="submit" id="btnSubmit" runat="server"
style="background-image:url(App_Themes/default/Images/quiz_class/btn_submit.jpg);
width:80px; height:29px;" onserverclick="btnSubmit_ServerClick" />
Ale gdy klikam przycisk, nie wywołuje on zdarzenia btnSubmit_ServerClick na stronie aspx.cs.
Nie chcę używać przycisku sterowania asp.
Proszę pomóż..
Odpowiedzi:
32 dla odpowiedzi nr 1Jeśli możesz, możesz przekonwertować przycisk wejściowy na kontrolkę po stronie serwera, określając runat="server"
i używasz asp.net
, opcja może używać HtmlButton.OnServerClick własność.
<input id="foo "runat="server" type="button" onserverclick="foo_OnClick" />
To powinno zadziałać i zadzwonić foo_OnClick
w kodzie po stronie serwera. Zauważ również, że na podstawie dokumentacji Microsoft powiązanej powyżej, powinieneś być również w stanie używać tagu HTML 4.0.
4 dla odpowiedzi nr 2
Na stronie aspx zdefiniuj element przycisku HTML ze zwykłymi podejrzanymi: runat, klasa, tytuł itp.
Jeśli ten element jest częścią kontroli powiązania danych (tj. Widok siatki itp.), Możesz użyć nazwy poleceń i ewentualnie CommandArgument jako atrybutów. Dodaj zawartość przycisku i znacznik zamknięcia.
<button id="cmdAction"
runat="server" onserverclick="cmdAction_Click()"
class="Button Styles"
title="Does something on the server"
<!-- for databound controls -->
CommandName="cmdname">
CommandArgument="args..."
>
<!-- content -->
<span class="ui-icon ..."></span>
<span class="push">Click Me</span>
</button>
W kodzie za stroną element wywołuje procedurę obsługi, która byłaby zdefiniowana jako funkcja zdarzenia ID_Click elementu.
protected void cmdAction_Click(object sender, EventArgs e)
{
: do something.
}
Istnieją inne rozwiązania, takie jak używanie niestandardowych elementów sterujących itp. Również zauważ, że używam tego na żywo w projektach w VS2K8.
Mam nadzieję, że to pomoże. Cieszyć się!
2 dla odpowiedzi nr 3
Najłatwiejszym sposobem osiągnięcia tego jest zastąpienie metody RaisePostBackEvent.
<input type="button" ID="btnRaisePostBack" runat="server" onclick="raisePostBack();" ... />
W twoim JavaScript:
raisePostBack = function(){
__doPostBack("<%=btnRaisePostBack.ClientID%>", "");
}
I w twoim kodzie:
protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
//call the RaisePostBack event
base.RaisePostBackEvent(source, eventArgument);
if (source == btnRaisePostBack)
{
//do some logic
}
}
0 dla odpowiedzi nr 4
Postępuj zgodnie z tym samouczkiem: http://decoding.wordpress.com/2008/11/14/aspnet-how-to-call-a-server-side-method-from-client-side-javascript/
W komentarzu: ASP.NET generuje funkcję javascript po stronie klienta, którą można wywołać z własnych funkcji, aby wykonać żądaną wiadomość zwrotną.
- Więcej informacji na temat przejęcia kontroli nad postem:
- http://msdn.microsoft.com/en-us/library/aa720099(vs.71).aspx
- http://wiki.asp.net/page.aspx/1082/dopostback-function/
- http://geekswithblogs.net/mnf/archive/2005/11/04/59081.aspx
0 dla odpowiedzi № 5
po prostu użyj tego na końcu zdarzenia kliknięcia przycisku
protected void btnAddButton_Click(object sender, EventArgs e)
{
... save data routin
Response.Redirect(Request.Url.AbsoluteUri);
}
0 dla odpowiedzi № 6
Możesz użyć serwera obsługi zdarzeń jak poniżej
// cmdAction to id przycisku HTML, jak poniżej
<body>
<form id="form1" runat="server">
<button type="submit" id="cmdAction" text="Button1" runat="server">
Button1
</button>
</form>
</body>
// kod cs
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
cmdAction.ServerClick += new EventHandler(submit_click);
}
protected void submit_click(object sender, EventArgs e)
{
Response.Write("HTML Server Button Control");
}
}