/ / извикващо сървърно събитие от html бутон за управление - asp.net, html

извикващо сървърно събитие от html бутон за управление - asp.net, html

Създавам приложение, използващо ASP.Net, в което имам HTML бутон на 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" />

Но когато щракна върху бутона, тогава той не извиква събитието btnSubmit_ServerClick на aspx.cs страницата.

Не искам да използвам бутон за контрол на asp.

Моля помогнете..

Отговори:

32 за отговор № 1

Ако сте съгласни с превръщането на бутона за въвеждане в контрол на сървъра, посочете runat="server"и използвате asp.net, опция може да се използва HtmlButton.OnServerClick Имот.

<input id="foo "runat="server" type="button" onserverclick="foo_OnClick" />

Това трябва да работи и да се обажда foo_OnClick в кода на сървъра. Също така забележете, че на базата на документацията на Microsoft, свързана по-горе, трябва да можете да използвате и етикета HTML 4.0.


4 за отговор № 2

На вашата aspx страница определете елемента Бутон HTML с обичайните заподозрени: runat, class, title и т.н.

Ако този елемент е част от обвързан с данни контрол (т.е.: изглед на мрежата и т.н.), може да искате да използвате CommandName и вероятно CommandArgument като атрибути. Добавете съдържанието на бутона и затварящия маркер.

<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>

На кода зад страницата елементът ще извика манипулатора, който ще бъде дефиниран като функцията ID_Click на елемента.

protected void cmdAction_Click(object sender, EventArgs e)
{
: do something.
}

Има и други решения, както при използването на персонализирани контроли и т.н. Също така имайте предвид, че използвам този проект на живо в проекти в VS2K8.

Надявайки се това да помогне. Наслади се!


2 за отговор № 3

Най-лесният начин да постигнете това е да отмените метода RaisePostBackEvent.

<input type="button" ID="btnRaisePostBack" runat="server" onclick="raisePostBack();" ... />

И в JavaScript:

raisePostBack = function(){
__doPostBack("<%=btnRaisePostBack.ClientID%>", "");
}

И във вашия код:

protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
//call the RaisePostBack event
base.RaisePostBackEvent(source, eventArgument);

if (source == btnRaisePostBack)
{
//do some logic
}
}

0 за отговор № 4

Моля, следвайте този урок: http://decoding.wordpress.com/2008/11/14/aspnet-how-to-call-a-server-side-method-from-client-side-javascript/

На SIDOTE: ASP.NET генерира javascript функцията на клиентската страна, която можете да извикате от собствените си функции, за да изпълните желаната от вас обратна връзка.

- Повече информация за отвличането на събитието след завръщането:


0 за отговор № 5

просто използвайте това в края на вашето събитие при натискане на бутон

protected void btnAddButton_Click(object sender, EventArgs e)
{
... save data routin
Response.Redirect(Request.Url.AbsoluteUri);
}

0 за отговор № 6

Можете да използвате сървъра за събития, като кликнете по-долу

// cmdAction е id на HTML бутона, както е показано по-долу

<body>
<form id="form1" runat="server">
<button type="submit" id="cmdAction" text="Button1" runat="server">
Button1
</button>
</form>
</body>

// 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");
}
}