基本上,我已经创建了一个使用UpdatePanel的自定义控件,据我所知,我需要使用ScriptManagerProxy使其工作(因为每页应该只有一个ScriptManager,并且在我的.aspx页面中声明).那么,你如何使用这个野兽,只需添加:
<asp:ScriptManagerProxy ID="ScriptManagerProxy3" runat="server">
</asp:ScriptManagerProxy>
Run Code Online (Sandbox Code Playgroud)
在你的控制下,还是有更多的东西?任何人都可以发布链接到一个很好的教程/示例集?我试着谷歌搜索,但我找不到任何有用的东西......
页面可以有多个ScriptManagers吗?如果是,则需要在什么条件下?
我有一个控件,在更新面板上.我希望每次更新updatePAnel时都运行我的javascript代码.
我使用这样的东西:
ScriptManager.RegisterStartupScript(this, GetType(), "my_script", "runFunction();", true);
Run Code Online (Sandbox Code Playgroud)
问题是我的js代码很大,我想将它放在js文件中并从文件中使用它.我的代码应该改变什么?
我已经使用了这个命令,因为我在ImageButton_ClickEvent 上启动了我的新项目,并且它在我正在使用的每个页面中都运行良好:我首先检查是否有一个字段为空,如果是,那么我发送它alert.
ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('No Empty fields are allowed.');", true);
Run Code Online (Sandbox Code Playgroud)
我在这里做的是:我有2个textboxes我输入两个日期,这些日期用于填充我的reportviewer,但在它进入之前reportviewer,我检查它是否empty存在.
在这个页面中,它仅在我第一次按下按钮时起作用.我使用了断点,它正在通过OK我的条件IF,但它没有显示消息......为什么?
完整代码Button_Click Event:
if (Txt_Dt_Final.Text == "" || Txt_Dt_Inicial.Text == "")
{
ScriptManager.RegisterStartupScript(this, typeof(Page), "alert", "alert('No Empty fields are allowed.');", true);
Txt_Dt_Inicial.Focus();
return;
}
Run Code Online (Sandbox Code Playgroud)
更新
实际上,在我第一次按它之后,没有任何工作了......即使我输入有效的日期,它也不起作用......我现在测试它,只出现错误,如果错误是第一次按下按钮的时间.
例如:
如果我输入日期确定,那么我的报告查看器将返回我的报告结果...然后我点击带有空文本框的按钮,它将触发错误并显示消息.如果我再次按下它会工作正常!
现在,如果我第一次按下带有空字段的按钮,该按钮将不再起作用!如果我刷新页面它就会恢复工作......为什么?oO
我所有其他页面都很完美.
我创建了一个需要在我的 .ascx 页面中使用的 Web 服务。我不能只是添加这个:
<asp:ScriptManager ID="OWUScripts" runat="server">
<Services>
<asp:ServiceReference Path="~/OWUDashboard.asmx" />
</Services>
</asp:ScriptManager>
Run Code Online (Sandbox Code Playgroud)
因为那时我在页面上有多个 ScriptManager。所以我做了一些研究,发现我需要将它添加到 Page_Load 事件中...
Dim myScriptManager As ScriptManager = ScriptManager.GetCurrent(Me.Page)
Dim objServiceReference As ServiceReference = New ServiceReference()
objServiceReference.Path = "~/MyService.asmx"
myScriptManager .Services.Add(objServiceReference)
Run Code Online (Sandbox Code Playgroud)
但是我无法访问 Page_Load 事件,因为已经有一个预设(它是一个皮肤等等)所以我把代码扔在了 <script runat="server"></script>
然而,它给了我一个错误,说“Declaration Expected”......我拿出了几行,它似乎在说它找不到 Me.Page (或者它是空的)
关于我做错了什么的任何见解?
我可以<script runat="server">像我一样访问 Me.Page还是应该以不同的方式访问?
asp.net dotnetnuke web-services scriptmanager service-reference
我正在尝试扩展ScriptManager以简化处理具有多个资源文件的资源(例如,多个脚本文件以及css).我们的目标是,我将能够在单个添加ScriptReference到Scripts并将其加载与该基准名称的多个资源.
我坚持的是,ScriptManager当使用不包含Page参数的静态方法时,你的基本知道如何处理这些东西?例如:
ScriptManager.ScriptResourceMapping.AddDefinition("someName", new
ScriptResourceDefinition { Path="/script/somescript.js"});
Run Code Online (Sandbox Code Playgroud)
这为(我猜)任何活动脚本管理器为您调用它时正在运行的页面添加了一个定义.但与旧式方法不同,就像RegisterClientScriptBlock没有传递标识页面的参数一样.但是这些东西必须存放在ScriptManager对象中,不是吗?那怎么知道呢?
我可以随时获得对活动的引用:
ScriptManager.GetCurrent(page);
但理想情况下,我会创建与微软完全相同的新方法.我无法弄清楚如何实现类似的东西
ScriptManager.ScriptResourceMapping.AddDefinition(string name,
ScriptResourceDefinition definition,
ResourceType type)
Run Code Online (Sandbox Code Playgroud)
这可以找出对象实例添加内容而无需添加Page参数.不知怎的,他们正在做...我怎么能?
我使用asp.net 4和c#.
我在Web From页面中有一个Web用户控件.当我包含Web用户控件时,我还希望以编程方式在最终生成的页面的标签中包含一些脚本.
知道怎么做吗?也许ScriptManager可以帮忙吗?
请给我一个代码示例我很擅长开发感谢您的时间!
我的应用程序在asp.net 3.5中,我从日期选择器中选择日期,这是在更新面板内.选择日期并点击提交按钮页面后回复.回帖后,当我再次尝试选择日期时,我在那里看不到日期选择器.
// aspx页面上的代码
<%@ Page Title="" Language="C#" MasterPageFile="~/Sample/MasterPage.master" AutoEventWireup="true" CodeFile="UpdateProblem.aspx.cs" Inherits="Sample_UpdateProblem" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script type="text/javascript" src="jscolor/jscolor.js"></script> // Script for date
<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>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在学习 asp.net,因此我正在尝试从 MSDN 构建名为“Wingtip Toys”的项目。
该项目是在 VS 2013 上开发的,我有 VS 2012。当我尝试按照此处的指令添加 Bootstrap 时,我在浏览器中运行时收到错误。
“/”应用程序中的服务器错误。
“bootstrap”不是有效的脚本名称。该名称必须以“.js”结尾。
描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
异常详细信息:System.InvalidOperationException:“bootstrap”不是有效的脚本名称。该名称必须以“.js”结尾。
当我在母版页上添加时,.js它向我显示另一个错误:
程序集“System.Web.Extensions,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”不包含名为“bootstrap.js”的 Web 资源。确保资源名称拼写正确。
我还将 CSS 文件添加到 Bundle.config 但结果仍然相同。我已经有可用的 NuGet 包,就像jQuery.js错误一样,但我还无法解决这个问题。
当显示模式弹出窗口时,我需要以编程方式调用以下内容来设置某些内容。
Sys.Application.add_load(modalSetup);
Run Code Online (Sandbox Code Playgroud)
一些顺理成章的事情。
<script type='text/javascript'>
Sys.Application.add_load(modalSetup);
function modalSetup() {
var modalPopup = $find("PopupBehaviorId");
if (modalPopup != null) {
modalPopup.add_shown(SetFocusOnControl);
}
}
function SetFocusOnControl() {
alert('test');
}
</script>
Run Code Online (Sandbox Code Playgroud)
现在的问题是我script manager在主页上有一个。
如果我手动(不是以编程方式)将此脚本放在 的下面script manager in the master page,它将正常工作。
但是,当我使用任一方法以编程方式将其添加到模式弹出窗口(我需要)的用户控件中时ScriptManager.RegisterClientScriptBlock or Page.ClientScript.RegisterClientScriptBlock,它会引发著名的sys is undefined错误。
我知道这种情况正在发生,因为这个程序注入将其放入该行执行Head section之前。ScriptManager
我该如何解决这个问题。是否可以说将此脚本插入到页面末尾而不是顶部?
scriptmanager ×10
asp.net ×9
c# ×5
asp.net-ajax ×2
javascript ×2
ajax ×1
dotnetnuke ×1
html ×1
web-services ×1
webforms ×1