我在我的内容页面上使用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方法。
答案 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);
详细文章:
答案 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();
}
}