调用C#功能从JavaScript中/ JQuery的在Asp.net web表单 [英] Call C# Function From JavaScript/JQuery In Asp.net webforms
问题描述
所以,我有一个aspx页面看起来像这样:
So, i have an aspx page which looks like this:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
我想知道,我怎么可以编写JavaScript(例如jQuery的)code,将调用一个函数从我的C#code。让我们说,这是我的C#方法:
I would like to know, how I can write JavaScript (e.g. jQuery) code that will call a function from my C# Code. Lets say this is my C# method:
protected void XXX(object sender, EventArgs e)
{
Response.Redirect("pagewho?");
}
再次感谢,阿龙。 :)
Thanks again, Alon. :)
编辑:
这是全code我使用的时刻:
This is the full code i am using the moment:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<script type="text/javascript">
validateStuff = function () {
var isValid = true;
var txt = document.getElementById("TextBox1");
if (txt) {
if (txt.value.toLower() != "james") {
isValid = false;
}
}
//perform validation and return true/false
return isValid;
}
</script>
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" OnClientClick="return validateStuff();" OnClick="Button1_Click" />
<br />
<br />
<asp:TextBox ID="TextBox1" runat="server" Height="25px" Width="135px"></asp:TextBox>
<br />
<br />
<br />
</div>
</form>
</body>
</html>
但是,不管什么,我wireting在文本框中,它的返回真。任何帮助吗?
but, no matter what i am wireting in the textbox, its return true. any help?
推荐答案
您可以使用 __ doPostBack
从脚本,并在code使用RaisePostBackEvent方法背后执行服务器端逻辑。如果你希望做一个重定向,这很可能是最好的办法。
You can use __doPostBack
from the script, and use the RaisePostBackEvent method in the code behind to perform your server-side logic. If you're looking to do a redirect, this would probably be the best way.
修改
如果你正在寻找做一些验证在JavaScript中单击一个按钮时,可以使用的OnClientClick
来执行JavaScript验证,并返回true,如果验证成功。
If you're looking to do some validation in JavaScript when a button is clicked, use OnClientClick
to perform your JavaScript validation, and return true if the validation succeeds.
<asp:Button ID="Button1" runat="server" OnClientClick="return validateStuff();" OnClick="Button1_Click" />
您的JavaScript验证:
Your JavaScript validation:
validateStuff = function(){
var isValid = true;
var txt = document.getElementById("<%=TextBox1.ClientID%>");
if (txt.value.toLower() != "james"){
isValid = false;
}
return isValid;
}
如果在 validateStuff
函数返回true,将发生回传,你可以处理你的保存按钮单击事件/更新逻辑:
If the validateStuff
function returns true, a postback will occur and you can handle your save/update logic in the button click event:
protected void Button1_Click(object sender, EventArgs e)
{
//save some stuff to the database
string txtValue = TextBox1.Text.Trim();
}
在JavaScript的:
In JavaScript:
redirectToAnotherPage = function(){
__doPostBack("<%=SomeServerControl.ClientID%>", "someArgument");
}
在code-背后:
protected override void RaisePostBackEvent(IPostBackEventHandler source, string eventArgument)
{
//call the RaisePostBack event
base.RaisePostBackEvent(source, eventArgument);
Response.Redirect("anotherpage.aspx");
}
如果你正在寻找做的是带给用户到另一个页面,你也可以这样做:
If all you're looking to do is bring the user to another page, you can also do this:
redirectToAnotherPage = function(){
window.location.href = "somepage.aspx";
}
这篇关于调用C#功能从JavaScript中/ JQuery的在Asp.net web表单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!