使用ScriptManager.RegisterStartupScript从代码隐藏调用javascript方法

Calling javascript Method from Code behind using ScriptManager.RegisterStartupScript

本文关键字:调用 javascript 方法 隐藏 代码 ScriptManager RegisterStartupScript 使用      更新时间:2023-09-26

我在内容页面上使用Ajax Toolkit。我有一个Javascript代码,我想使用ScriptManager.RegisterStartupScript从代码后面调用它。

javaScript代码是:-

<script type="text/javascript">
   function disp_confirm() {
       var r = jConfirm("Your Shift End ! Do you still want to Continue ? ")
       if (r == true) {
           jAlert("You pressed OK!")
       }
       else {
           jAlert("You pressed Cancel!")
       }

如何使用C#从代码后面调用javascript的disp_confirm()方法。

试试这个

ScriptManager.RegisterStartupScript(Page,GetType(),"disp_confirm","<script>disp_confirm()</script>",false)
 System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, typeof(System.Web.UI.Page), "Script", "myFun();", true); 

这对我有效

如果使用ajax工具包中的Asp.net UpdatePanel控件,那么我们需要使用ScriptManager.RegisterStartupScript

代码:

ScriptManager.RegisterStartupScript(GetType(), "Javascript", "javascript:disp_confirm(); ", true);

简而言之,如果不首先刷新页面以考虑注入的javascript代码,就无法从codeehind启动javascript。

基本上,使用RegisterStartupScript,您告诉asp在页面加载时注入一些javascript。但是,如果您需要动态调用javascript函数或变量,这将不会有帮助。

你可以从我的例子中得到什么:我有一个涵盖ASP控件的div,我希望从中运行javascript和codebehind。div的onClick方法和日历的OnSelectionChanged事件都以这种方式触发。

在这个例子中,我使用一个ASP日历控件,并从javascript和codeehind:控制它

前端代码:

        <div onclick="showHideModal();">
            <asp:Calendar 
                OnSelectionChanged="DatepickerDateChange" ID="DatepickerCalendar" runat="server" 
                BorderWidth="1px" DayNameFormat="Shortest" Font-Names="Verdana" 
                Font-Size="8pt" ShowGridLines="true" BackColor="#B8C9E1" BorderColor="#003E51" Width="100%"> 
                <OtherMonthDayStyle ForeColor="#6C5D34"> </OtherMonthDayStyle> 
                <DayHeaderStyle  ForeColor="black" BackColor="#D19000"> </DayHeaderStyle>
                <TitleStyle BackColor="#B8C9E1" ForeColor="Black"> </TitleStyle> 
                <DayStyle BackColor="White"> </DayStyle> 
                <SelectedDayStyle BackColor="#003E51" Font-Bold="True"> </SelectedDayStyle> 
            </asp:Calendar>
        </div>

编码背后:

        protected void DatepickerDateChange(object sender, EventArgs e)
        {
            if (toFromPicked.Value == "MainContent_fromDate")
            {
                fromDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
            }
            else
            {
                toDate.Text = DatepickerCalendar.SelectedDate.ToShortDateString();
            }
        }