我想在执行一些代码后淡出和删除div。使用按钮的onclientclick属性时,这个JQuery函数工作正常。但是,无法从c#中调用它。
JS:
function Confirm()
{
$(".saved").fadeIn(500).fadeOut(500);
}
C#:
protected void btnsave_click(object sender, Eventargs e)
{
//some code
upd.update();
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "Confirm",
"<script type='text/javascript'>Confirm();</script>", true);
}
HTML:
<asp:updatepanel id="upd" runat="server" updatemode="conditional">
<triggers>
<asp:asyncpostbacktrigger controlid="btnsave" eventname="click"/>
</triggers>
<contenttemplate>
<div style="position:relative">
<span class="saved">Record Saved</span>
<asp:gridview....../>
</div>
<asp:button id="btnsave" runat="server" text="save" onclick="btnsave_click"/>
</contenttemplate>
</asp:updatepanel>
CSS:
.saved
{
position:absolute;
background:green;
margin:0 auto;
width:100px;
height:30px;
visibility:hidden;
}
答案 0 :(得分:7)
C#
protected void btn_click(object sender, Eventargs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "Confirm();", true);
}
<script>
function Confirm()
{
$(".saved").fadeIn(500).fadeOut(500);
}
</script>
C#
protected void btn_click(object sender, Eventargs e)
{
ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "script", "Confirm();", true);
}
<script>
$(document).ready(function () {
function Confirm() {
$(".saved").fadeIn(500).fadeOut(500);
};
});
</script>
答案 1 :(得分:1)
使用异步回发时,最好了解您可以在客户端实际处理的事件(aspx文件)。
如果你想在异步回发后执行一些客户端函数(jquery,javascript),我建议在客户端使用pageLoaded
事件。所以你的javascript将如下所示:
function pageLoad(sender, args) {
$(".saved").fadeIn(500).fadeOut(500);
}
有关详细信息,请参阅常见方案的事件订单部分的this MSDN页面。
希望这有帮助
在评论后编辑以添加过滤器示例
要根据引发事件的元素过滤pageLoad
事件中的逻辑,如this MSDN页面中所述,在动画面板部分,您可以执行此操作像这样的东西:
var postbackElement;
function beginRequest(sender, args) {
postbackElement = args.get_postBackElement();
}
function pageLoaded(sender, args) {
if (typeof(postbackElement) === "undefined") {
return;
}
else if (postbackElement.id.toLowerCase().indexOf('btnsave') > -1) {
$(".saved").fadeIn(500).fadeOut(500);
}
}
答案 2 :(得分:0)
试试这个......
ClientScript.RegisterClientScriptBlock(this.GetType(), "script", "Confirm();", true);