2

我想OnClick为我的panel. 到目前为止,大多数谷歌结果看起来或多或少是这样的:将 onclick 事件添加到 aspnet label。有没有办法从 javascript 或面板属性调用代码隐藏函数?因为我想将用户重定向到一个新页面,然后在 ViewSTate 或 Sessionstate 中保存一些信息。有什么建议么?

4

3 回答 3

2

在您的 java 脚本方法中引发对 a 的__dopostback调用Server side method

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

其中btnTemp是一个服务器端按钮,所以在服务器端编写这个按钮的 onClick 事件,你可以在其中进行处理,然后重定向到其他页面。

您可以在DoPostBack Understanding对 dopostback 有一个很好的了解

于 2012-06-05T07:57:31.073 回答
2

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

我的服务器端代码如下:

protected void Page_Load(object sender, EventArgs e)
    {
        Label1.Attributes.Add("onClick", "CallMe();");
    }
protected void btnTemp_Click(object sender, EventArgs e)
    {

    }

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

于 2012-06-05T09:49:41.707 回答
0

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

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

于 2012-06-05T08:42:46.953 回答