我尝试从JavaScript调用c#函数 - 我想将参数与该方法一起传递,但是如何传递参数?
以下是aspx页面中的javascript:
function CallCodeBehind(id) {
var a = '<%=CallFromJS(--parameter need pass here --)%>';
}
以下方法在代码隐藏
中public string CallFromJS(id) {
int id=id;
getNames(id);
return null;
}
按钮代码是:
<Button ID="Button1" runat="server" OnClientClick="CallCodeBehind(<%=(id)%>)" Text="Upload" />
答案 0 :(得分:1)
WebMethods可以有参数,但方法必须是静态的。
服务器端(* .cs代码隐藏):
[WebMethod]
public static string Hello(string name)
{
return "Hello " + name;
}
然后从这样的javascript中调用它:
<script type="text/javascript">
function SayHelloToMe(param) {
PageMethods.Hello(param, OnSuccess, OnError);
}
function OnSuccess(response) {
alert(response);
}
function OnError(error) {
alert(error);
}
</script>
和按钮:
<Button ID="Button1" runat="server" OnClientClick="SayHelloToMe('<%=(id)%>')" Text="Upload" />
当然id必须是公共的,并且在那个表单上你必须启用带有PageMethods的ScriptManager,如下所示:
<asp:ScriptManager ID="scMan" runat="server" EnablePageMethods="true"></asp:ScriptManager>