使用ScriptManager.RegisterStartupScript从Code后面调用javascript方法

时间:2012-08-20 04:59:35

标签: c# javascript asp.net

我在我的内容页面上使用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#从后面的代码中调用此disp_confirm() javascript方法。

4 个答案:

答案 0 :(得分:5)

试试这个

ScriptManager.RegisterStartupScript(Page,GetType(),"disp_confirm","<script>disp_confirm()</script>",false)

答案 1 :(得分:4)

 System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, typeof(System.Web.UI.Page), "Script", "myFun();", true); 

这对我有用

答案 2 :(得分:1)

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

代码:

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

详细文章:

<强> Call Javascript Function from Code Behind in Asp.net C# with/without using Asp.net UpdatePanel control

答案 3 :(得分:0)

简而言之,您必须先刷新页面以考虑您注入的javascript代码,才能从后台代码中触发javascript。

基本上,使用RegisterStartupScript,您可以告诉ASP在页面加载时注入一些JavaScript。但这对您需要动态调用javascript函数或变量没有帮助。

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

在此示例中,我正在使用ASP Calendar控件,并通过javascript和后台代码对其进行即时控制:

前端代码:

        <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();
            }
        }