我从UpdatePanel内部的外部javascript文件运行javascript时遇到问题。我试图让一个颜色选择器在ListView内部工作。ListView在UpdatePanel内部。
我正在使用这个颜色选择器。
这是我将其范围缩小到的内容:
如果我在之外的文本框上使用颜色选择器UpdatePanel
,则在所有回发中它都可以正常工作。
如果我在内的文本框上使用颜色选择器UpdatePanel
,它将起作用,直到执行异步回发(单击ListView中的“编辑”按钮)为止。一旦UpdatePanel
做了回传,点击后的文本将不再显示颜色选择器。当文本框位于ListView 的InsertItemTemplate
或EditItemTemplate
中时,也会发生相同的情况。
如果您想复制它,只需下载颜色选择器(它是免费的),然后将其添加到网页…
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<asp:UpdatePanel ID="panel1" runat="server">
<ContentTemplate>
<asp:TextBox runat="server" ID="textbox" CssClass="color" />
<asp:Button ID="Button1" runat="server" Text="Button" />
</ContentTemplate>
</asp:UpdatePanel>
</div>
页面加载后,颜色选择器可以正常工作。当您单击按钮(进行回发)时,颜色选择器将不再起作用。
有任何想法吗?
异步往返之后,将不会运行任何启动脚本,这可能是为什么在AJAX回调后无法启动的原因。颜色选择器可能具有需要在页面加载时执行的功能。
我已经遇到了很多次,以至于我写了一个小方法在后台代码中注册脚本,该方法可以处理异步和非异步往返。基本概要如下:
private void RegisterClientStartupScript(string scriptKey, string scriptText)
{
ScriptManager sManager = ScriptManager.GetCurrent(this.Page);
if (sManager != null && sManager.IsInAsyncPostBack)
{
//if a MS AJAX request, use the Scriptmanager class
ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), scriptKey, scriptText, true);
}
else
{
//if a standard postback, use the standard ClientScript method
scriptText = string.Concat("Sys.Application.add_load(function(){", scriptText, "});");
this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), scriptKey, scriptText, true);
}
}
实际上,我将以上内容烘焙到了基页类中,以便我正在使用的任何页面都可以调用this.RegisterClientStartupScript(...)
。为此,只需创建一个基础页面类并将其包含在其中(确保将受保护的标记为非私有,否则您继承的页面类将无法访问它)。
使用以上代码,无论页面正在执行回发还是回调,我都可以放心地注册客户端脚本。意识到您正在使用外部脚本文件,您可能可以修改上述方法来注册外部脚本,而不是内联。有关更多详细信息,请查阅ScriptManager类,因为有几种脚本注册方法…
问题内容: 在ASP.NET MVC中使用哪个更好? 问题答案: 我个人更喜欢jQuery,原因如下:- 插件社区的多样性要大得多,并且吸引了具有广泛背景的开发人员(不仅仅是MS堆栈)。对于MS-AJAX,目前,您的UI小部件几乎受限于客户端AJAX控件工具包。 我发现jQuery API比MS AJAX提供的通用客户端任务更适用 鉴于MVC中缺少WebForms烟雾和镜像,您有时需要对DOM进行
我试图使用Spring-boot Java和SteelToe ASP.NET创建微服务 步骤1:我使用Java创建了一个完整的服务(一个带有UI和API的服务。它托管在PCF上)。API内部定义了ClassesControler。 编辑:我修改了这个问题,使其更加清楚。流量的流动是从Java服务到.NET服务。.NET服务请求来自JAVA服务中的控制器的类列表(ClassesController.
问题内容: 是什么区别,并在ASP.Net Web应用程序项目的情况下? 这是我要执行的操作的代码: 如果它们在功能上相同,那么在性能方面哪个更好? 这是一个C#4.0 / ASP.Net Web应用程序,在组织内部将看到适度的使用情况。谢谢你的回答。 问题答案: 返回用于运行托管您的Web应用程序的应用程序池的标识。如果您使用Windows身份验证和模拟,那么它将是实际用户的名称,但是在所有情况
本文向大家介绍ASP.NET MVC中的AJAX应用,包括了ASP.NET MVC中的AJAX应用的使用技巧和注意事项,需要的朋友参考一下 一、ASP.NET MVC中的AJAX应用 首先,在ASP.NET MVC中使用自带的ajax功能,必须要导入2个js文件(顺序不能颠倒): ASP.NET MVC提供了2个常用的ajax辅助方法. Ajax.Acti
本文向大家介绍asp.net-web-api 路由在ASP.NET WebAPI中的工作方式,包括了asp.net-web-api 路由在ASP.NET WebAPI中的工作方式的使用技巧和注意事项,需要的朋友参考一下 示例 在ASP.NETWeb API中,控制器是处理HTTP请求的类。控制器的公共方法称为动作方法或简称为动作。 Web API框架收到请求后,会将请求路由到操作。为了确定要调用的
问题内容: 我已经读过,为了连接到Azure Redis缓存,最好遵循以下做法: 根据Azure Redis文档: 与Azure Redis缓存的连接由ConnectionMultiplexer类管理。此类设计为在整个客户端应用程序中共享和重用,并且不需要在每个操作的基础上创建。 那么,在我的ASP.net MVC应用程序之间共享ConnectionMultiplexer的最佳实践是什么?应该在G