Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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
C# 将OnClick事件添加到ASP.NET控件_C#_Asp.net_Onclick_Controls - Fatal编程技术网

C# 将OnClick事件添加到ASP.NET控件

C# 将OnClick事件添加到ASP.NET控件,c#,asp.net,onclick,controls,C#,Asp.net,Onclick,Controls,我想为我的面板创建OnClick事件。到目前为止,谷歌的大部分搜索结果大致如下:。有没有办法从javascript或面板属性调用codebehind函数?因为我想将用户重定向到一个新页面,在此之前在ViewSTate或Sessionstate中保存一些信息。有什么建议吗 在java脚本方法中,对服务器端方法发出调用 <script type="text/javascript"> function YourFunction() { __doPost

我想为我的
面板创建
OnClick
事件。到目前为止,谷歌的大部分搜索结果大致如下:。有没有办法从javascript或面板属性调用codebehind函数?因为我想将用户重定向到一个新页面,在此之前在ViewSTate或Sessionstate中保存一些信息。有什么建议吗

在java脚本方法中,对
服务器端方法发出
调用

<script type="text/javascript">
     function YourFunction()
     {
         __doPostBack('btnTemp', '')
     }
</script>

函数YourFunction()
{
__doPostBack('btnTemp','')
}
其中,btnTemp是服务器端的按钮,因此在服务器端写下此按钮的onClick事件,您可以在其中进行处理,然后重定向到其他页面


在java脚本方法中,您可以很好地理解dopostback at

服务器端方法的调用

<script type="text/javascript">
     function YourFunction()
     {
         __doPostBack('btnTemp', '')
     }
</script>

函数YourFunction()
{
__doPostBack('btnTemp','')
}
其中,btnTemp是服务器端的按钮,因此在服务器端写下此按钮的onClick事件,您可以在其中进行处理,然后重定向到其他页面


在ASP.NET按钮上有一个PostBackUrl属性,您可以正常呈现该按钮,然后回发到另一个页面,这就是需要声明OnClick方法的地方


我强烈建议不要返回同一个页面,然后做一个响应。重定向(),考虑流量。浏览器请求页面,然后发回一个HttpRedirect,然后导航到新页面。使用我上面概述的方法,这是不需要的,浏览器必须少发出一个请求(这意味着不必发送消息或在服务器上重建页面),这是一个显著的性能优势。

ASP.NET按钮上有一个PostBackUrl属性,您可以正常呈现按钮,然后回发到另一个页面-这就是需要声明OnClick方法的地方

我强烈建议不要返回同一个页面,然后做一个响应。重定向(),考虑流量。浏览器请求页面,然后发回一个HttpRedirect,然后导航到新页面。使用我上面概述的方法,这不是必需的,而且浏览器必须减少一个请求(这意味着不必发送消息或在服务器上重建页面),这是一个显著的性能优势。

我的aspx页面类似于:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <script type="text/javascript">
        function CallMe() { __doPostBack('btnTemp', '') }
    </script>
</head>
<body>
    <form id="form1" runat="server">
         <asp:Button ID="btnTemp" runat="server" Text="Test" onclick="btnTemp_Click" />
         <div> <asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label>
         <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></div>
    </form>
</body>
这就是我写的代码,我没有;t在上述代码中包括using语句、Page指令等。

我的aspx页面如下所示:

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <script type="text/javascript">
        function CallMe() { __doPostBack('btnTemp', '') }
    </script>
</head>
<body>
    <form id="form1" runat="server">
         <asp:Button ID="btnTemp" runat="server" Text="Test" onclick="btnTemp_Click" />
         <div> <asp:Label ID="Label1" runat="server" Text="Label1"></asp:Label>
         <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label></div>
    </form>
</body>

这就是我写的代码,我没有;上面的代码中没有包含using语句、Page指令等。

如果您需要访问ViewState或Session之类的服务器变量,您应该回发,然后
响应。将
重定向到另一个页面。除非您需要访问ViewState,否则我不同意这一点,这将需要向服务器发出额外的请求,这非常昂贵。会话将以我在下面概述的方法提供。如果您仍然需要访问ViewState或Session之类的服务器变量,您应该回发,然后
响应。重定向到另一个页面。除非您需要访问ViewState,否则我不同意这一点,这将需要向服务器发出额外的请求,这非常昂贵。会话将在我下面概述的方法中可用。btnTemp_Click()事件是否应该触发?因为现在这个页面正在为我做回发。是的,它一定被激活了,它正在和我一起在这里激活。回发期间,在Page_Load event中,检查变量Request.Params[“_EVENTTARGET”]中的值?在积极的场景中,它应该包含btnTemp。在Request.Params[“u EVENTTARGET”中,它显示BTNTEP,但是按钮点击事件没有触发。如果我在那里设置断点,它只有在按下按钮时才会触发。你能检查我的代码吗?函数CallMe(){u doPostBack('btnTemp','')受保护的无效页面\u加载(对象发送方,事件参数e){Label2.Attributes.Add(“onClick”,“CallMe()”);Label1.Text=Request.Params[“\u事件目标”];}受保护的无效btnTemp\u单击(对象发送方,事件参数e){Response.Redirect(“test.aspx”)}我使用了上面的代码,在Page_Load事件中,我写了这一行,Label1.Attributes.Add(“onclick”,“CallMe();”);这样,当单击Label1时调用CallMe,当我单击Label1时,就会触发btnTemp_click。btnTemp_click是否应该()事件触发?因为此时页面正在为我进行回发。是的,它必须被触发,它与我一起在这里触发。在回发过程中,在page_Load event中,检查变量Request.Params[“\u EVENTTARGET”]?在积极的情况下,它应该包含btnTemp。在Request.Params[“\u EVENTTARGET”它显示了BTNTEP,但是按钮点击事件没有触发。如果我在那里设置了断点,它只有在按下按钮时才会触发。你能检查我的代码吗?函数CallMe(){{uuuuu doPostBack('btnTemp','')}受保护的无效页面加载(对象发送方,事件参数e){Label2.Attributes.Add(“onClick”,“CallMe();”);Label1.Text=Request.Params[“\uu EVENTTARGET”];}受保护的void btnTemp\u Click(对象发送方,事件参数e){Response.Redirect(“test.aspx”);}我使用了上面的代码,在Page_Load事件中,我写了这一行,Label1.Attributes.Add(“onclick”,“CallMe();”),这样在单击Label1时调用CallMe,单击Label1时调用btnTemp_Cl