Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用javascript调用codebehind函数?_Javascript_C#_Asp.net - Fatal编程技术网

如何使用javascript调用codebehind函数?

如何使用javascript调用codebehind函数?,javascript,c#,asp.net,Javascript,C#,Asp.net,我试图调用此代码隐藏函数: protected void Insert(object sender, EventArgs e) { blah blah blah code this.BindGrid(); } 在.aspx文件中,我得到了如下java函数: <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true

我试图调用此代码隐藏函数:

protected void Insert(object sender, EventArgs e)
        {
            blah blah blah code
            this.BindGrid();
        }
在.aspx文件中,我得到了如下java函数:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<asp:Button ID="Button2" runat="server" Text="Call Button Click" Style="display:none" OnClick="Insert" />
<asp:Button ID="btnAdd" runat="server" Text="Add" OnClientClick="return Validate();" Width="100" />

        <script type="text/javascript">
                function Validate()
                {
                    var id = document.getElementById("txtStudentID").value;
                    Number(id);
                    var fn = document.getElementById("txtFirstName").value;
                    String(fn);
                    var ln = document.getElementById("txtLastName").value;
                    String(ln);
                    var cls = document.getElementById("txtClass").value;
                    String(cls);
                    var rn = document.getElementById("txtRollNumber").value;
                    Number(rn);
                    My code blah blah blah
                    document.getElementById("Button2").click();
                    PageMethods.Insert(onSuccessMethod, onFailMethod);
                };
          </script>

函数验证()
{
var id=document.getElementById(“txtStudentID”).value;
编号(id);
var fn=document.getElementById(“txtFirstName”).value;
字符串(fn);
var ln=document.getElementById(“txtLastName”).value;
字符串(ln);
var cls=document.getElementById(“txtClass”).value;
字符串(cls);
var rn=document.getElementById(“txtRollNumber”).value;
数字(rn);
我的密码什么的
document.getElementById(“按钮2”)。单击();
插入(onSuccessMethod、onFailMethod);
};
我需要插入工作时,我按下按钮添加(一个是可见的)。 我不确定我的逻辑是否正确,或者是否有更好的方法。 如果有人知道我可以从javascript调用Insert函数,我将不胜感激。我试过谷歌的一些东西,但似乎都不管用。 提前感谢

您可以尝试以下方法:

Page.ClientScript.RegisterStartupScript(this.GetType(),"CallMyFunction","Validate()",true);

我们可以将[WebMethod]用于我们希望从JavaScript调用的方法。据我所知,这应该是一种静态方法。 我们可以使用

PageMethods.MethodNameOnCodeBehindClass()
因此,您的场景是否可以创建一个可以调用所需方法的静态方法。

您也可以尝试:

ScriptManager.RegisterClientScriptBlock(this,Gettype(this),"","validate();",true);

好的,这是一个简单的Onclick和OnClientClick问题。 OnClientClick是首先执行的函数,完成后将转到OnClick函数。一天结束时,我的结局是: 代码隐藏:

public void Validate(object sender, EventArgs e)
{
      boring code blah blah blah
}
这是aspx代码

    <script id="validity" type="text/javascript">

        function Validate() {

             Blah blah blah boring code
        }
    </script>
    <asp:Button ID="btnAdd" runat="server" OnClientClick="return Validate();" OnClick="Validate"
            Text="Add" Width="100" />

函数验证(){
无聊的代码
}

我使用onclientclick执行基于javascript的验证。完成后,我将执行服务器端数据上传。完成后看起来非常基本。我希望它将来能帮助其他人

谢谢你的快速回复,你能告诉我我是在我的焦点中还是在代码的开头(aspx.cs)添加这个吗?它不起作用,页面只是重新加载,甚至没有进入插入功能:(将此添加到按钮的事件方法中,它应该可以工作。不幸的是,它不能工作。或者我只是做错了。检查以下URL,它会很有帮助。我想我必须通过ajax,因为我无法将受保护的方法更改为公共静态。这是我的第一个想法,但我似乎甚至无法调用从Javascript调用公共静态方法。更不用说从公共静态调用受保护的。这就是我们可以做的,伙计。如果你同意从Javascript调用公共静态方法。因为最近我做了相同的实现。顺便说一句,我没有收到你的评论:p,你到底想说什么。。