我有一个问题真的让我觉得很愚蠢。我有一个继承文本框的自定义控件。这个文本框(至少对于这个例子来说)只是有一个嵌入在 .dll 中的 .js 文件。
长话短说,当不在 AJAX 更新面板中时效果很好。所以我做了一些研究,发现而不是使用:Page.ClientScript.RegisterClientScriptResource,我应该使用 ScriptManger.RegisterClientScriptResource - 我已经在 overrdive 渲染方法中完成了这个,但是 javascript 仍然没有触发。
有谁知道我做错了什么?
示例:我的项目中有一个名为 Scripts 的文件夹 - 它包含 myscript.js 我的程序集名为 Jim.Bob.Controls
我向我的控件添加属性,即: Attributes.Add("onclick", "Test2();");
在覆盖渲染中:
ScriptManager.RegisterClientScriptResource(this.Page, typeof(CustomTextBox), "Jim.Bob.Controls.Scripts.myscript.js");
但是我仍然收到“预期对象”错误。
我需要我的文本框来使用并且没有 AJAX。我将 System.Web.Extensions 导入到我的项目中以访问 ScriptManger
有人可以告诉我我做错了什么吗?再一次,这整个事情在没有 AJAX 的情况下工作得很好,我已经把必要的东西放到了 AssemblyInfo.cs (WebResource:,,,,etc)
提前致谢 :-)
--- 更新 --- 我恢复了控件,在非 AJAX 网络中尝试它,我遇到了同样的问题。不知道为什么我有问题,我在同一个程序集中有另一个自定义控件,它工作得很好 - 让它们以完全相同的方式设置,唯一的区别是正在工作的那个继承 WebControl,那个不继承 TextBox 。 ..在一个正在工作的地方,我像Go一样发出html并做它在不工作的地方我有Attributes.Add(“onclick”,“CustomFunction();”);
另外,如果我做 Attributes.Add("onclick", "alert('hello');"); 它工作正常。
抱歉发了这么长的帖子。