如何在不回发的情况下运行Javascript OnClientClick和C#OnClick?

克莱尔

我的div在我的母版页中充当弹出窗口,称为“ mydiv-clear”。
我在div“ fade”中有我的主页内容。

如果我使用“ return false;”,我可以使用Javascript OnClientClick成功“弹出”我的div(将显示从无显示更改为阻止显示);在我的OnClientClick中以防止回发(div返回显示:回发时无)。

我想对弹出式窗口中的其他功能执行C#OnClick控件。当我有return = false时;在我的OnClientClick中,我无法点击C#OnClick代码。当我删除return = false; 我的页面回发了,我的显示又回到了display = none;。在线解决方案建议将我的按钮移到UpdatePanel控件中,或者使用UseSubmitBehaviour = false,但这些方法都不适合我。

当我突破代码时,以下解决方案将触发我的javascript(出现弹出窗口)导致回发(弹出窗口消失)并触发我的C#。有人可以建议一种方法来防止回发并仍然触发C#吗?谢谢

。网

<asp:Button ID="btnOptOut" OnClientClick="div_show();" UseSubmitBehavior="false" OnClick="btnOptOut_Click" CssClass="btn btn-default" runat="server" Text="Opt Out" />

C#

protected void btnOptOut_Click(object sender, EventArgs e)
            {

                try
                {

                    _dal.createOptOutRecord(_myuser.id, _myuser.EmailAddress);

                    //More functionality to go here

                }

                catch(Exception ex)
                {


                }
            }

Java脚本

 function div_show() {
    document.getElementById('mydiv-clear').style.display = "block";
    document.getElementById('fade').style.opacity = ".1";
}
虚拟世界

回发将始终在按钮OnClick事件上执行即使它在UpdatePanel中,它仍然会执行(部分)回发。但是,只要div位于外部,UpdatePanel仍然可以工作。

但是有多种方法可以保持div的可见性。第一个例子使用RegisterStartupScript

    protected void btnOptOut_Click(object sender, EventArgs e)
    {
        //call the div_show() function again after postback
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "showDiv", "div_show()", true);
        //or set the visibility directly to the div after postback
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "showDiv", "document.getElementById('mydiv-clear').style.display = \"block\";", true);
    }

第二个示例使用全局变量。

    public string divVisibility = "none";
    protected void btnOptOut_Click(object sender, EventArgs e)
    {
        divVisibility = "block";
    }

然后在.aspx文件中

    <div id="mydiv-clear" style="display: <%= divVisibility %>">myDiv</div>

第三个示例UpdatePanel在.aspx页中带有

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel3" runat="server">
    <ContentTemplate>
        <asp:Button ID="btnOptOut" OnClientClick="div_show();" UseSubmitBehavior="false" OnClick="btnOptOut_Click" CssClass="btn btn-default" runat="server" Text="Opt Out" />
        <asp:Label ID="Label1" runat="server" Text="Does it work?"></asp:Label>
    </ContentTemplate>
</asp:UpdatePanel>

<div id="mydiv-clear" style="display: none">myDiv</div>

然后在代码后面。

    protected void btnOptOut_Click(object sender, EventArgs e)
    {
        Label1.Text = "Yes it does!";
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

C#onclick和onclientclick同时

如何在不回收和不使用循环的情况下连接不同长度的向量?

如何在不回发的情况下打开引导模式?

如何在不使用Visual Studio的情况下编译和运行C#程序?

如何在不立即运行的情况下更改元素 onclick 的 onclick?

如何在平行射线和不使用射线模式的情况下运行函数?

如何在不压缩过滤和关闭端口的情况下运行 nmap 并输出到 xml

如何在不写入主目录的情况下运行podman和buildah?

如何在启用溢出检查的情况下编译和运行优化的Rust程序

如何在没有cmd的情况下编译和运行Java文件?

如何在一般情况下和启动时运行Shell命令

如何在Raspberry Pi上没有操作系统的情况下运行C程序?

我的程序如何在不包含必需的.c文件的情况下运行?

如何在不使用C#打开浏览器的情况下运行Web进程

C++ Monte Carlo 集成:如何在不求和结果的情况下多次运行代码?

仅在不存在特定Cookie的情况下,如何运行此JavaScript函数和HTML

如何在没有onclick的情况下使用Thymeleaf th:if调用javascript函数?

如何在没有 javascript 的情况下获得 onclick 事件功能?

如何在没有onclick事件的情况下使用javascript更改图像?

如何在不破坏图像、CSS 和 JavaScript 的情况下实现友好的 URL?

Javascript-如何在没有“ this”的情况下更改范围和访问方法

如何在 C# 中检查 Azure 数据工厂管道是否在没有运行 ID 的情况下运行

如何在不安装和使用 IP 地址访问的情况下运行 MySQL(如 http://127.0.0.1/phpmyadmin)

如何在不构建解决方案两次的情况下运行单元测试和部署代码?

如何在没有JavaScript和Ajax的情况下从MVC4 C#获取json

如何使用jquery或javascript在每个情况下显示和隐藏Onclick按钮?

如何在不使用OnClientClick的情况下在提交表单之前运行jQuery脚本

如何在不影响Javascript中日期的情况下捕获和替换int和float字符串?

如何在没有回发的情况下运行 Jscript