【问题标题】:how to write a JavaScript function in c# in code behind?如何在后面的代码中用 c# 编写 JavaScript 函数?
【发布时间】:2016-08-03 10:25:45
【问题描述】:

我必须从后面的代码中调用东西。我可以像这样从后面的代码中调用 Html:

看起来像这样

<h1>cubus outperform EV Analytics</h1>

<div style="margin:0px; position:absolute; top:12px; left:0px; bottom:0px; right:0px;" id="EVObject_xml">
        <object id="EVObject" name="EVObject" lang="en-US" 
            width="100%" height="100%" CodeBase="http://kl12ACUC/EVServer/Client/Ctrl.cab#version=11,0,0,0" 
            ClassId="clsid:80AC1200-0BBE-499A-A9E9-5F334DBC8E89">
                <param Name="Server" Value="kl12ACUC" />
                <param Name="EnableTabBar" Value="True" />
                <param Name="Theme" Value="Ribbon" />
        </object>
    </div>
    <div id="ribbon" />
    <div id="backstage-container" /> 

现在在后面的代码中看起来像这样

 string strHTMLGrid = "";
            strHTMLGrid = strHTMLGrid + "<h1>" + sHeading + "</h1>";
            strHTMLGrid = strHTMLGrid + "<div id='EVObject_xml' style='margin: 0px; position: absolute; top: 12px; left: 0px; bottom: 0px; right: 0px; '>";
            strHTMLGrid = strHTMLGrid + "<object name='EVObject' width='100%' height='100%' id='EVObject' codebase='" + sUrlHtml + "' lang='en-US' classid='clsid:80AC1200-0BBE-499A-A9E9-5F334DBC8E89'>";
            strHTMLGrid = strHTMLGrid + "<param name='Server' value='" + sServername1 + "'>";
            strHTMLGrid = strHTMLGrid + "<param name='Server' value='" + sTheme1 + "'>";
            strHTMLGrid = strHTMLGrid + "<param name='Server' value='" + sHeading + "'>";
            strHTMLGrid = strHTMLGrid + "</object>";
            strHTMLGrid = strHTMLGrid + "</div>";
            strHTMLGrid = strHTMLGrid + "<div id='ribbon'>";
            strHTMLGrid = strHTMLGrid + "<div id='backstage - container'> </div>";
            strHTMLGrid = strHTMLGrid + "</div>";

现在我需要在加载这个 html 文档的正文时调用 JavaScript 函数。我的代码看起来像这样

function OpenCube()
         {
                EVObject.Enable(UIAuthorisationType.UIAuthorisationToolbar, true);
                EVObject.Enable(UIAuthorisationType.UIAuthorisationTabBar, true);
                EVObject.TabBarPosition = TabBarPositionType.TabBarPositionBottom;
                EVObject.Allow(ActionAuthorisationType.UIAuthorisationToolbarText, false);
                EVObject.ToolBar.LargeButtons = false;
                EVObject.Enable(UIAuthorisationType.UIAuthorisationLocalViews, false);
                EVObject.Allow(ActionAuthorisationType.ActionAuthorisationDataEntry, false);
                EVObject.Allow(ActionAuthorisationType.ActionAuthorisationSaveView, true);
                EVObject.Allow(ActionAuthorisationType.ActionAuthorisationExport, true);
                EVObject.Allow(ActionAuthorisationType.ActionAuthorisationExportToExcel, true);
                EVObject.ViewLocations = "General=/";
                EVObject.object.attachEvent("NeedDataSourceCredentials", DataSourceCredentials);
                EVObject.object.attachEvent("NeedServerCredentials", ServerCredentials);
                EVObject.Views.Open("/Outdb/mis");
                LeaveBackstage();
                ExpandRibbons(false);
                ShowBackstage(false);

                 }

1) 问题 1 ====现在如何在 C# 中调用 javascript 函数。
2)问题2===== 如何调用Javascript函数加载我写的html文档的body。

【问题讨论】:

    标签: javascript c# html asp.net function


    【解决方案1】:

    你应该使用 RegisterStartupScript

    private void Page_Load(object sender, System.EventArgs e)
    {
        string jScriptValidator;
        jScriptValidator="<script> function ReqFieldValidator()" + 
                    " { if (document.forms[0].txtField.value == '') \n"; 
        jScriptValidator+="{ alert('TextBox cannot be empty') \n ";
        jScriptValidator+="return false; \n";
        jScriptValidator+="} \n";
        jScriptValidator+=" return true \n";
        jScriptValidator+=" } </script>";
        Page.RegisterStartupScript("regJSval",jScriptValidator);
        btnSubmit.Attributes.Add("onclick","return ReqFieldValidator()");
    }
    

    更多你可以参考这个页面: http://www.codeproject.com/Articles/11098/Use-Call-RegisterStartUpScript-RegisterClientScrip

    【讨论】:

      【解决方案2】:

      正如我从面试官那里听到的那样,在 Visual Studio 2013 之前,人们遇到了这个问题,他们想在代码隐藏文件中调用 javascript。所以下面是使用 runat="server" 标签的一种方式。

      <script runat="server">
      //your java script code
      </script>
      

      上面的代码将在客户端之后调用,即它将在服务器端执行

      【讨论】:

        猜你喜欢
        • 2013-11-10
        • 2011-02-20
        • 2011-10-15
        • 1970-01-01
        • 2011-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多