从c#调用javascript函数不工作
本文关键字:工作 函数 javascript 调用 | 更新日期: 2023-09-27 18:13:59
大家好,我在我的popupscript .js文件中有这个方法:
function afficherMessageInfo( id, message) {
//Get the A tag
alert('executing the client code');
//Get the screen height and width
var maskHeight = $(document).height();
var maskWidth = $(window).width();
//Set heigth and width to mask to fill up the whole screen
$('#mask').css({'width':maskWidth,'height':maskHeight});
//transition effect
$('#mask').fadeIn(500);
$('#mask').fadeTo("slow",0.8);
//Get the window height and width
var winH = $(window).height();
var winW = $(window).width();
//Set the popup window to center
$(id).css('top', winH/2-$(id).height()/2);
$(id).css('left', winW/2-$(id).width()/2);
//transition effect
$(id).fadeIn(1000);
}
$('.window .close').live("click", function (event) {
//Cancel the link behavior
event.preventDefault();
$('#mask').hide();
$('.window').hide();
});
//if mask is clicked
$('#mask').live("click", function (event) {
$(this).hide();
$('.window').hide();
});
我想显示一个弹出窗口从c#按钮点击事件,像这样:
void BtnEnregistrer_btnClick(object sender, EventArgs e)
{
string id = "#info";
string messageInfo = "le dossier a été crée avec succès";
string script = String.Format("afficherMessageInfo({0},{1})", id, messageInfo);
this.Page.ClientScript.RegisterStartupScript(this.GetType(),
"afficherMessageInfo", script, true);
}
和HTML部分:
<script src="../Scripts/jquery.js" type="text/javascript"></script>
<script src="popupScript.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="boxes">
<!-- information -->
<div id="info" class="window" style="display:none;">
<div class="info_title">
<div class="pop_title">Information</div>
<div class="close_image"><a href="#"class="close"/><img src="images/popups/close.jpg" border="0" /></a></div>
</div>
<div class="pop_content">
<div class="pop_message">Etiam vel nisl ante. Mauris congue sodales risus ac cele risque Etiam vel nisl ante.Etiam vel nisl ante.</div>
<div align="right"><input name="" type="button" value="OK" class="info_bt"/></div>
</div>
</div>
<!-- Alerte -->
<div id="alerte" class="window" style="display:none;">
<div class="alerte_title">
<div class="pop_title">Alerte</div>
<div class="close_image"><a href="#"class="close"/><img src="images/popups/close.jpg" border="0" /></a></div>
</div>
<div class="pop_content">
<div class="pop_message">Etiam vel nisl ante. Mauris congue sodales risus ac cele risque Etiam vel nisl ante.Etiam vel nisl ante.</div>
<div align="right"><input name="" type="button" value="OK" class="alerte_bt"/></div>
</div>
</div>
<!-- validation -->
<div id="validation" class="window" style="display:none;">
<div class="validation_title">
<div class="pop_title">Validation</div>
<div class="close_image"><a href="#"class="close"/><img src="images/popups/close.jpg" border="0" /></a></div>
</div>
<div class="pop_content">
<div class="pop_message">Etiam vel nisl ante. Mauris congue sodales risus ac cele risque Etiam vel nisl ante.Etiam vel nisl ante.</div>
<div align="right"><input name="" type="button" value="Annuler" class="validation_bt"/> <input name="" type="button" value="OK" class="validation_bt"/></div>
</div>
</div>
<!-- confirmation -->
<div id="confirmation" class="window" style="display:none;">
<div class="confirmation_title">
<div class="pop_title">Demande de Confirmation</div>
<div class="close_image"><a href="#"class="close"/><img src="images/popups/close.jpg" border="0" /></a></div>
</div>
<div class="pop_content">
<div class="pop_message">Etiam vel nisl ante. Mauris congue sodales risus ac cele risque Etiam vel nisl ante.Etiam vel nisl ante.</div>
<div align="right"><input name="" type="button" value="Exemple 1" class="confirmation_bt"/> <input name="" type="button" value="Exemple 2" class="confirmation_bt"/> <input name="" type="button" value="Exemple 3" class="confirmation_bt"/> <input name="" type="button" value="Annuler" class="confirmation_bt"/> <input name="" type="button" value="OK" class="confirmation_bt"/></div>
</div>
</div>
<!-- Masque pour couvrir la page -->
<div id="mask"></div>
</div>
警报没有显示
看起来你传递给javascript函数的参数缺少引号:
行string script = String.Format("afficherMessageInfo({0},{1})", id, messageInfo);
应该读
string script = String.Format("afficherMessageInfo('{0}','{1}')", id, messageInfo);
在afficherMessageInfo()之后缺少分号
你试过用浏览器工具调试这个吗?
删除RegisterStartupScript
函数调用上的true
参数,原因是它已经在<script></script>
块内的标记中定义了。
RegisterStartupScript
有一个过载,不占用最后的include script block param
。
所以把你的行改成:
this.Page.ClientScript.RegisterStartupScript(this.GetType(),
"afficherMessageInfo", script);
为什么不直接添加OnClientClick
属性呢?
protected void Page_Load(object sender, EventArgs e)
{
string id = "#info";
string messageInfo = "le dossier a été crée avec succès";
BtnEnregistrer.OnClientClick = String.Format("afficherMessageInfo('{0}','{1}')", id, messageInfo);
}
这个方法会避免你的PostBack
,并会给你一个弹出窗口。
// Round your values before using them since they can result in float.
// Also you have to implicitly add '.px' to them.
//Get the screen height and width
var maskHeight = $(document).height() + '.px';
var maskWidth = $(window).width() + '.px';
//Set heigth and width to mask to fill up the whole screen
$('#mask').css({
'width':maskWidth,
'height':maskHeight
});
var windowH = Math.round(winH/2-$(id).height()/2) + '.px';
var windowW = Math.round(winW/2-$(id).width()/2) + '.px';
$(id).css({
'top': windowH,
'left': windowW
});