ASP:UpdatePanel-单击按钮时添加JavaScript
本文关键字:添加 JavaScript 按钮 单击 UpdatePanel- ASP | 更新日期: 2023-09-27 18:29:41
我有一个带有asp:Button
和asp:TextBox
:的asp:UpdatePanel
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button runat="server" Text="Click" ID="button" onclick="button_Click"/>
<asp:TextBox runat="server" Title="Text" ID="text" Style="margin-top: 50px;" />
</ContentTemplate>
</asp:UpdatePanel>
button_Click
方法为:
protected void button_Click(object sender, EventArgs e) {
text.Attributes.Add("title", "Box");
ClientScript.RegisterClientScriptBlock(typeof(ScriptManager), "Tooltify", "tooltipfy();", true);
}
tooltify()
是一个javascript函数。
var tooltipfy = function () {
alert('');
$('[title]').qtip({
style: {
tip: {
corner: true,
width: 10,
height: 5
},
classes: 'ui-tooltip-rounded ui-tooltip-shadow ui-tooltip-tipsy'
},
position: {
my: 'bottom left',
at: 'top right',
adjust: {
x: -10,
y: 0
}
},
events: {
show: function (event, api) {
$('.ui-tooltip-content').addClass('ui-tooltip-center');
}
},
show: {
effect: function (offset) {
$(this).show("slide", { direction: "up" }, 500);
}
},
hide: {
effect: function (offset) {
$(this).hide("explode", 500);
}
}
});
}
问题是函数没有执行。
使用asp:UpdatePanel
时如何调用JavaScript函数?
使用UpdatePanel
时应使用ScriptManger
。
protected void button_Click(object sender, EventArgs e) {
ScriptManager.RegisterClientScriptBlock(this, this.GetType(),"Tooltify", "tooltipfy();", true);
}
我现在不可能测试它,但根据这个博客,你应该让它与ScriptManager.RegisterStartupScript
一起工作。
使用ClientScript.RegisterClientScriptBlock
不是一种好的做法。如果您的Javascript函数(tooltipfy)应该更新一些控件,那么您应该将这些控件放在asp:UpdatePanel
下,并在代码后面更新它们,如下所示:
someDiv.Style.Add("display", "inline");
someDiv.InnerHtml = Text;
otherControl.Style.Add("display", "block");