任何线索为什么按钮单击事件不能成功插入脚本?从updatepanel事件中调用时,Javascript插入不会显示
这是非常简单的代码。
C#:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e){
ClientScript.RegisterStartupScript(Page.GetType(), "scriptalert", "<script type=\"text/javascript\">alert('testLOAD');</script>;", false);
btnAdd.Click += new EventHandler(btnAdd_Clicked);
}
protected void btnAdd_Clicked(Object sender,System.EventArgs e){
ClientScript.RegisterStartupScript(Page.GetType(), "scriptfunc", "<script type=\"text/javascript\">func();</script>;", false);
}
}
HTML:
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
<script type="text/javascript">
alert("testSCRIPT");
function func() {
alert("testFUNC");
}
</script>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:ScriptManager ID="ToolkitScriptManager1" runat="server" />
<div id="View" style="height: 50%; width:20%; ">
blahblahblah
</div>
<div id="Addd" style="height: 50%; width:100%;">
<asp:UpdatePanel ID="UpdateAdd" runat="server">
<ContentTemplate>
<asp:Button ID="btnAdd" runat="server" Text="Add" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</asp:Content>
在页面加载,我得到两个警报发射,即 “testLOAD” 和 “testSCRIPT”,但是当我按下按钮什么都没有发生(应该是第三个警报)......检查调试器,事件被调用并运行,但是当我查看页面源时没有插入任何东西。
我怀疑这个问题可能存在于其他地方,因为复制粘贴到没有母版页(即没有ASP:内容标签)的新页面中。尽管如此,我还没有遇到其他脚本插入的问题,为什么这个呢?
我有另一个页面,这可以在更新面板内正常工作试过这段代码,它说'RegisterStartupScript'不能从实例中调用,我认为它是一个静态方法。使用'ScriptManager'而不是'ClientScript'也不能解决问题。 – Oofpez 2012-04-02 09:54:05