任何線索爲什麼按鈕單擊事件不能成功插入腳本?從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