简体   繁体   English

如何使用C#从ascx代码后面调用javascript函数

[英]how to call javascript function from ascx code behind using C#

I want to call javascript function which is in login.ascx file when user click on log in button. 当用户单击“登录”按钮时,我想调用login.ascx文件中的javascript函数。

Here is a code for login.ascx code: 这是login.ascx代码的代码:

              <div class="dnnFormItem">
                <asp:label id="lblLogin" runat="server" AssociatedControlID="cmdLogin" CssClass="dnnFormLabel" />
               <asp:LinkButton id="cmdLogin" resourcekey="cmdLogin" cssclass="dnnPrimaryAction" text="Login" runat="server"/>
               <script type="text/javascript">
/*globals jQuery, window, Sys */
(function ($, Sys) {
    function setUpLogin() {
        var actionLinks = $("a[id$=cmdLogin]");
        actionLinks.click(function () {
            if ($(this).hasClass("dnnDisabledAction")) {
                return false;
            }

            actionLinks.addClass("dnnDisabledAction");
        });
    }

    $(document).ready(function () {
        setUpLogin();
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function () {
            setUpLogin();
        });
    });
}(jQuery, window.Sys));

Below is the javascript code in login.ascx which i want to call when user click on login button. 下面是login.ascx中的javascript代码,我想在用户单击“登录”按钮时调用它。

function myTestFun() {





    //var  _currentUser =

    //           DotNetNuke.Entities.Users.UserController.GetCurrentUserInfo();

    var userName = '<%=username%>';

    var fname = '<%=firstnm%>';

    var userinfo= {

        "Usr_Username": userName,
         "Usr_Email": "",
         "Usr_FirstName": fname
    };

     localStorage.setItem('GoDashProUser', JSON.stringify(GoDashProUser));
   }
   </script>

Here is code behind file using C#: 这是使用C#在文件后面的代码:

         private void OnLoginClick(object sender, EventArgs e)
    {
        ClientScriptManager cs = Page.ClientScript;

            if (loginStatus == UserLoginStatus.LOGIN_USERNOTAPPROVED)
            {
                message = "UserNotAuthorized";
            }
            else
            {
                authenticated = (loginStatus !=UserLoginStatus.LOGIN_FAILURE);
            }

            //Raise UserAuthenticated Event
            var eventArgs = new UserAuthenticatedEventArgs(objUser, txtUsername.Text, loginStatus, "DNN")
                                {
                                    Authenticated = authenticated, 
                                    Message = message,

                                };
            //string script = "<script type=\"text/javascript\"> myTestFun(); </script>";
            //ClientScript.RegisterClientScriptBlock(this.GetType(), "myscript", script);
           // cs.RegisterStartupScript(GetType(), "myTestFun", "myTestFun();", true);
            //Page.ClientScript.RegisterStartupScript(this.GetType(), "Script", "myTestFun()", true);
            ScriptManager.RegisterClientScriptBlock(this.Page, typeof(UpdatePanel), UniqueID, "myTestFun();", true);

            firstnm = objUser.FirstName;

            OnUserAuthenticated(eventArgs);
        }
    }

I have tried most possible options to call the javascript function but it will not call. 我尝试了大多数可能的选项来调用javascript函数,但不会调用。 I want to call javascript function to save data into local storage and also want to pass the values of userinfo. 我想调用javascript函数将数据保存到本地存储中,并且还希望传递userinfo的值。

Please suggest me some way to do so. 请建议我一些方法。 Thank you. 谢谢。

 <asp:LinkButton OnClientClick="myTestFun()" id="cmdLogin" resourcekey="cmdLogin" cssclass="dnnPrimaryAction" text="Login" runat="server"/>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM