我正在从后面的代码构建一个页面。我添加一个按钮并设置它的属性,如下所示:
var Button1 = new Button();
Button1.Text = "Purge Course Comments";
Button1.Attributes.Add("OnClientClick", "javascript: Purge();");
pageButtons.Controls.Add(Button1);
该按钮被添加到名为“pageButtons”的 div 中。当我测试程序时,该按钮正常显示在屏幕上,但是当我单击它时,除了浏览器回发之外什么也没有发生。
这个页面必须从后面的代码构建,所以我不能直接将按钮添加到页面,像这样(这会工作):
<asp:Button ID="Button1" runat="server" Text="Close Window" OnClientClick="Purge;"/>
基本上,我需要能够从后面的代码中调用该函数,但我运气不佳。有人可以告诉我我做错了什么吗?
编辑:我在 Stackoverflow 上查看了类似的问题,但在这种情况下我找不到一个对我有用的答案。
编辑:为清楚起见,这是我在页面上定义的清除功能:
function PurgeCourse() {
strCourseId = getQueryString("Id");
if (strCourseId == "") {
strCourseId = getQueryString("CourseId");
}
window.open("Purge.aspx?id=" + strCourseId);
parent.window.close();
}
如果我只是手动将按钮添加到页面中,如上例所示,它可以工作。但是,我似乎无法从后面的代码中调用它。
编辑:我尝试了下面的建议,现在我的代码如下所示:
var Button1 = new Button();
Button1.Text = "Purge Course Comments";
Button1.OnClientClick = "javascript: Purge();";
pageButtons.Controls.Add(Button1);
不幸的是,这也不起作用。不过,我将重申,如果我手动将按钮添加到页面并将 OnClientClick 属性设置为调用 Purge(),则该功能确实有效。似乎我无法从后面的代码中获取该功能,这令人沮丧,因为我不明白为什么。这是一个小测试页面,只有一个函数和一个 div 以及后面的代码。我看不出问题出在哪里。
编辑:我只是尝试了另一件事,只是想看看它是否会起作用。我做了以下事情:
Button1.OnClientClick = "javascript: parent.window.close();";
这很有效,所以按钮至少可以使用内联 javascript 代码。只是没有从后面的代码“看到”页面上的我的功能。