[英]Client method called by ScriptManager.RegisterStartupScript not firing
[英]Calling javascript Method from Code behind using ScriptManager.RegisterStartupScript
我在我的内容页面上使用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);
详细文章:
使用/不使用Asp.net UpdatePanel控件从Asp.net C#中的Code Behind调用Javascript函数
简而言之,您无法在不首先刷新页面以考虑您注入的javascript代码的情况下从代码隐藏中激活javascript。
基本上,使用RegisterStartupScript,你告诉asp在页面加载时注入一些javascript。 但是如果您需要动态调用javascript函数或变量,这将无济于事。
你可以从我的例子中得到什么:我有一个覆盖ASP控件的div,我想要从javascript和codebehind运行。 div的onClick方法和日历的OnSelectionChanged事件都以这种方式触发。
在这个例子中,我使用的是ASP日历控件,并且我可以从javascript和codebehind控制它:
前端代码:
<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();
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.