- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
好的:我在包含单个占位符的 aspx 页面上有一个 UpdatePanel。
在此占位符内,我根据某些外部条件附加了一系列用户控件之一(这是一个配置页面)。
在每个用户控件中都有一个 bindUcEvents() javascript 函数,它将各种 jQuery 和 javascript 事件绑定(bind)到用户控件内的按钮和验证器。
我遇到的问题是无法识别用户控件的 javascript。通常,updatepanel 回发时会执行 updatepanel 内的 javascript,但是页面找不到这些代码(我尝试通过 firebug 的控制台手动运行该函数,但它告诉我找不到该函数)。
有人有什么建议吗?
干杯,埃德。
编辑:
减少(但功能)示例:
标记:
<script src="/js/jquery-1.3.2.min.js"></script>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="Script" runat="server" />
<asp:Button ID="Postback" runat="server" Text="Populate" OnClick="PopulatePlaceholder" />
<asp:UpdatePanel ID="UpdateMe" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Postback" EventName="Click" />
</Triggers>
<ContentTemplate>
<asp:Literal ID="Code" runat="server" />
<asp:PlaceHolder ID="PlaceMe" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
</form>
C#:
protected void PopulatePlaceholder(object sender, EventArgs e)
{
Button button = new Button();
button.ID = "Push";
button.Text = "push";
button.OnClientClick = "javascript:return false;";
Code.Text = "<script type=\"text/javascript\"> function bindEvents() { $('#" + button.ClientID + "').click(function() { alert('hello'); }); } bindEvents(); </script>";
PlaceMe.Controls.Add(button);
}
您会看到该按钮不会弹出警报消息,即使代码存在于页面上也是如此。
编辑2:
好吧,为了清楚起见,生产代码比绑定(bind)到文字上的单个函数要复杂得多,并且包含大量
<%= Control.ClientID %>
一些代码很难分解成非特定函数,而且毫无意义,因为它们每个都只用在一个地方(我们说的是非常具体的验证和奇怪的弹出触发器 + 一些逻辑) .
最佳答案
去掉 Literal 控件并使用 ScriptManager 注册您的脚本。出于同样的原因,您正在做的事情不起作用
window.document.getElementById('someId').innerHtml = "<script type=\"text/javascript\">alert('hey');</script>";
没用。试试这个:
protected void PopulatePlaceholder(object sender, EventArgs e)
{
Button button = new Button();
button.ID = "Push";
button.Text = "push";
button.OnClientClick = "return false;";
string script = "function bindEvents() { $('#" + button.ClientID + "').click(function() { alert('hello'); }); } bindEvents();";
ScriptManager.RegisterClientScriptBlock(this.Page, typeof(SomeClass), Guid.NewGuid().ToString(), script, true);
PlaceMe.Controls.Add(button);
}
RegisterClientScriptBlock 的参数可能需要更改,但您明白了。
关于c# - UpdatePanel 中的 JavaScript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2864398/
我在 asp.net 页面中有一些更新面板。我希望 updatepanel 2 在 updatepanel 1 刷新时刷新,但 UpdatePanel 2 的 UpdateMode 属性设置为 Con
我的 ajax 页面上有两个更新面板。这是我第一次使用 updatepanel,我不知道出了什么问题。我认为只有 btnFilter 的 Click 事件必须触发第二个更新面板的内容,但更改组合值(也
如果有 UpdatePanel在另一个 UpdatePanel ,并且在内部的UpdatePanel 中有一个按钮,我想点击这个按钮时,只刷新内部UpdatePanel .如何 ? 最佳答案 在inn
我正在将 ASP.NET 应用程序从 3.5SP1 移植到 4.0。该应用程序在 3.5SP1 中完美运行。在 4.0 中,我发现 UpdatePanel 行为有所不同。 我们有一个简单的用户控件,其
我已经复制并粘贴了这个警报类: http://madskristensen.net/post/JavaScript-AlertShow%28e2809dmessagee2809d%29-from-AS
我正在使用 C# 的 ASP .NET 4.0。我有一个 Web 表单,其中所有布局都存在于 UpdatePanel 中。里面有以下内容: 用于通过文本框和搜索按钮输入搜索条件的面板 使用动画 .gi
我需要在 UpdatePanel upSectionB 中添加 LinkButton btnAddRow 但问题是我在加载期间遇到此错误: A control with ID 'btnAddRow
我有一个带有 Ajax 选项卡控件的页面,其中一个选项卡中有一个 Web 控件,它是 Telerik RadGrid,其中编辑表单指向另一个 Web 控件。该编辑表单还包含 Ajax 选项卡,并且在其
我有一个带有一些复选框的 UpdatePanel。我检查它们,然后点击我的保存按钮,但这会导致 UpdatePanel 回发(刷新)并将它们全部设置回空白。重绘方法在按钮代码之前运行。 拥有可以操作的
我有很多地方......构造就在它所作用的元素之后进行(以确保在显示 HTML 之前立即对其进行处理)。一切正常。 现在我开始使用asp:UpdatePanel和一些标签在里面。我设置Visible=
我在使用 UpdatePanels 的同一个 asp.net 页面上有这个函数 $(function() { $("#listTimeInput").change(function() {
我有一个 UpdatePanel,用于替换页面内的内容。在 UpdatePanel 之外,我有一些 jQuery 使用 on() 函数来分配一些按钮点击。据我了解the new jQuery.on()
我已经将 Jquery 用于圆角(DIV),并且我有一个更新面板,其中包含一个数据列表,其中包含一些图像和一个删除链接。当我单击删除链接时,它会触发删除命令并删除图像。(异步回发)。问题是当我单击删除
考虑以下场景: MasterpageFile1: 嵌套母版页文件:
我目前正在尝试对位于 AJAX UpdatePanel 内的 GridView 使用“colResizable”。第一次加载时,它运行良好,但每当 UpdatePanel 更新时,它就会停止。 我知道
我只是想做空 this question's example通过制作一个简短的原型(prototype)来测试 UpdatePanel 功能,以禁用单击链接按钮时重新加载 ASP.NET 页面。我在像
我有一个相当复杂的 UI 页面,其中嵌套了多个 UpdatePanel。所有这些都设置为 UpdateMode = "Conditional" 我在所有更新面板之外都有一个列表框。奇怪的是,当单击 U
我正在阅读一篇显示 how bad CodePlex uses UpdatePanels 的文章以及 StackOverflow 在这个问题上有多好,例如,当用户赞成一个答案/问题时。 我想知道是否有
闲置 2 分钟后,在页面上呈现更新面板所需的时间大约是之前的 3 倍。我知道这可能是应用程序池设置的问题,但是有没有办法通过定期从页面与服务器联系来避免该问题? 最佳答案 你想做的是这样的 -> fu
我是一名优秀的程序员,十分优秀!