2

我在我的内容页面上使用 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!")
       }

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

4

4 回答 4

7

试试这个

ScriptManager.RegisterStartupScript(Page,GetType(),"disp_confirm","<script>disp_confirm()</script>",false)
于 2012-08-20T08:27:52.550 回答
5
 System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, typeof(System.Web.UI.Page), "Script", "myFun();", true); 

这对我有用

于 2014-02-05T09:02:41.190 回答
2

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

代码:

ScriptManager.RegisterStartupScript(GetType(), "Javascript", "javascript:disp_confirm(); ", true);
于 2017-01-25T11:48:49.393 回答
0

简而言之,如果不先刷新页面以考虑您注入的 javascript 代码,您就无法从代码隐藏中触发 javascript。

基本上,使用RegisterStartupScript,你告诉asp 在页面加载时注入一些javascript。但如果您需要动态调用 javascript 函数或变量,这将无济于事。

您可以从我的示例中获得什么:我有一个 div 覆盖了 ASP 控件,我希望从中运行 javascript 和代码隐藏。div 的 onClick 方法和日历的 OnSelectionChanged 事件都以这种方式触发。

在这个例子中,我使用了一个 ASP 日历控件,并且我通过 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();
            }
        }
于 2019-04-16T16:41:14.353 回答