标签: ajaxcontroltoolkit

如何让模态弹出窗口滚动其内容与页面?

我有一个模态弹出窗口,当它加载高于浏览器高度的内容时,我无法向下滚动以查看其余信息.相反,背景可以滚动,但弹出窗口不会.

相反,我希望弹出窗口保持不变,当用户向上或向下滚动时,将弹出窗口保留在原位并让它们滚动到内容的底部.如果你在Facebook上发一个超长的帖子,弹出窗口正常工作,我想知道如何用这个控件获得同样的效果.

asp.net modalpopupextender ajaxcontroltoolkit sizing

7
推荐指数
2
解决办法
3万
查看次数

将Ajax工具包脚本移动到页面底部

我正在努力改善我们的一个网站PageSpeed见解得分,在我们徘徊的那一刻90,如果可能的话,我们想要进入90年代中期.

我们遇到的一个难点是,Ajax工具包脚本管理器正在页面顶部生成其脚本,谷歌将此标记为" 应该修复 "问题,并抱怨该脚本是渲染阻止,应该移动到页面底部或异步加载或通过defer属性加载.

我正在使用以下内容将我们的脚本合并到一个.js文件中以最小化请求:

<ajaxToolkit:ToolkitScriptManager ID="manScript" LoadScriptsBeforeUI="false" runat="server" EnableViewState="false" ScriptMode="Release">

    <CompositeScript ScriptMode="Release" Path="/CMSGlobalFiles/Js/combinedajax.min.js">
        <Scripts>
            <asp:ScriptReference Name="WebForms.js" Path="/CMSGlobalFiles/Js/aspnet/WebForms.js" Assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
            <asp:ScriptReference Name="MicrosoftAjax.js" Path="/CMSGlobalFiles/Js/aspnet/MicrosoftAjax.js"  />
            <asp:ScriptReference Name="MicrosoftAjaxWebForms.js" Path="/CMSGlobalFiles/Js/aspnet/MicrosoftAjaxWebForms.js" />
        </Scripts>
    </CompositeScript>

</ajaxToolkit:ToolkitScriptManager>
Run Code Online (Sandbox Code Playgroud)

有没有办法设置defer或获得输出asyncCompositeScript标签?或者将其移动到页面底部的任何其他方式?

我尝试过以下方法:

protected override void Render(HtmlTextWriter writer)
{
    StringWriter output = new StringWriter();
    base.Render(new HtmlTextWriter(output));

    string outputAsString = output.ToString();

    if(outputAsString.Contains("<script src=\"/CMSGlobalFiles/Js/combinedajax.min.js\" type=\"text/javascript\"></script>"))
    {
        outputAsString = outputAsString.Replace("<script src=\"/CMSGlobalFiles/Js/combinedajax.min.js\" type=\"text/javascript\"></script>", string.Empty);
    }

    writer.Write(outputAsString);
}
Run Code Online (Sandbox Code Playgroud)

然后手动在页面底部包含对脚本的引用:

<script …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ajax ajaxcontroltoolkit

7
推荐指数
1
解决办法
538
查看次数

字典<K,V>线程是否可以安全地进行同时读取和添加?

这个问题涉及一个非常具体和常见的场景,其中字典被用于多线程环境中的项目的按需缓存.为了避免线程锁定,最好在同步锁之外测试现有的缓存项,但是如果我们随后必须添加一个项,那么它就算作对字典的写入,因此我在stackoverflow上读到的大多数建议都是你需要锁定读取和写入,因为调用add()可能会改变字典的内部状态.

但是,通过Microsoft的AjaxControlToolkit(scriptObjectBuilder类),代码确实在任何锁之外执行TryGet(),并且只锁定Add()新项到字典.我可以看到,如果放置项目的存储桶在添加后永远不会更改,这可能是怎么可能的,但我怀疑这是错误的,可能是错误的来源.

谢谢.

更新 通过.Net文档我认为所描述的模式确实是错误的.但是我想知道Dictionary的特定实现是否允许它以及AjaxControlToolkit是否依赖于此(这将是可疑的).在检查Reflector中的代码时我很确定这确实是错误的,Dictionary.Resize()方法重新分配桶的数量并移动桶项,因此TryGet()中间的任何线程都可能正在工作在不稳定的数据.

更新 已在codeplex上针对AjaxControlToolkit记录缺陷.看到:

.net dictionary ajaxcontroltoolkit thread-safety

6
推荐指数
2
解决办法
1562
查看次数

AJAX Control Toolkit自动完成出现在模态弹出窗口后面

我在AJAX Control Toolkit中遇到了AutoCompleteExtender的问题,我似乎无法深入到底.该控件位于一个asp:Panel中,该工具包链接到ModalPopupExtender.在IE9,FF和Opera的最新一代中,一切都很美妙,但Safari和Chrome中的故障(假设它与WebKit相关).

故障是自动完成的下拉落后于模式弹出窗口,而不是在它前面(由于隐私原因,名称模糊):

在此输入图像描述

查看Firebug中的内容,这是在无序列表中呈现的下拉列表:

<ul id="EmployeeAutoCompleteExtender_completionListElem" class="autoCompleteList" style="width: 281px; visibility: visible; position: absolute; left: 0px; top: 22px; z-index: 1000; ">
Run Code Online (Sandbox Code Playgroud)

autoCompleteList类如下所示:

.autoCompleteList
{
  list-style: none outside none;
  border: 1px solid buttonshadow;
  cursor: default;
  padding: 0px;
  margin: 0px;
}
Run Code Online (Sandbox Code Playgroud)

模态弹出窗口的结果div如下所示:

<div id="MainContent_AddPeoplePanel" class="modalPopup" style="z-index: 100001; position: absolute; left: 719px; top: 352.5px; opacity: 1; ">
Run Code Online (Sandbox Code Playgroud)

使用以下modalPopup CSS类:

.modalPopup
{
  background-color: White;
  padding: 10px;
  width: 462px;
}
Run Code Online (Sandbox Code Playgroud)

我的假设是列表中较低的z-index导致它落后于div,但是再次,它在非WebKit浏览器中表现得很好.z-index也是内联样式,所以它们显然是直接来自控件.我在这里错过了什么吗?有什么建议?(除了放弃WebForms和AJAX并使用jQuery)

html css ajaxcontroltoolkit

6
推荐指数
1
解决办法
7372
查看次数

想要在ModalPopExtender之上显示Update Progress控件

我有一个内容页面,其中包含更新面板和更新进度控件.页面回发时,将正确显示"更新进度"控件.我现在已经向页面添加了一个Modal Popup Extender.从Modal Popup Extender触发回发时,将显示Update Progress控件,但在Modal Popup Extender下面.

如何强制更新进度控件显示在顶部?

asp.net modalpopupextender ajaxcontroltoolkit updateprogress

6
推荐指数
1
解决办法
5154
查看次数

AjaxFileUpload不会触发OnUploadComplete事件

我试图让AjaxFileUpload--Control(在ContentPage中使用)工作.但它不会OnUploadComplete在服务器端触发事件

我正在使用4.1.60919.0ControlToolkit的版本.我已经尝试了我在互联网上找到的一切.

这里只需几步:

  • 在我的MasterPage中的form-element中添加了enctype ="multipart/form-data"method ="post"
  • 使用UpdateMode = Always将AjaxFileUpload嵌套到UpdatePanel中
  • 尝试事件UploadedComplete和OnUploadComplete,但保持在第二个
  • 在EventHandler中添加了一个try-catch-block来捕获未知异常并将ExceptionMessage打印到站点上的标签 - >什么都没发生
  • 尝试用(出)一个ThrobberImage ...
  • 许多其他tipps不起作用......

所以,我希望我们能在这个社区中找到一个解决方案.继承我的加价:

<%@ Page Title="New Download" Language="C#" MasterPageFile="~/MasterPage.master"     AutoEventWireup="true" CodeFile="NewDownload.aspx.cs" Inherits="Internals_NewDownload" %>
Run Code Online (Sandbox Code Playgroud)
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">

<ajax:ToolkitScriptManager ID="ToolkitscriptManager" runat="server">    </ajax:ToolkitScriptManager>
<h1>Create a new Download</h1>

        <ajax:AjaxFileUpload ID="FileUpload" runat="server" ThrobberID="ThrobberLabel" OnUploadComplete="FileUpload_UploadComplete" />
        <asp:Label ID="ThrobberLabel" runat="server" Style="display: none;"><img alt="UploadingPicture" title="Please wait while uploading..." src='<%= Constants.DomainString + "/Data/Images/loading-small.gif" %>' /></asp:Label>
        <asp:Label ID="DownloadLabel" runat="server"></asp:Label>

</asp:Content>
Run Code Online (Sandbox Code Playgroud)

这是我的CodeBehind:

using System;
using …
Run Code Online (Sandbox Code Playgroud)

asp.net file-upload ajaxcontroltoolkit

6
推荐指数
1
解决办法
6638
查看次数

一旦选中,AjaxFileUpload会自动上传文件

我有一个标准的AjaxFileUpload控件

<asp:AjaxFileUpload ID="upManager" CssClass="fileUpload" runat="server" OnUploadComplete="upManager_UploadComplete" />
Run Code Online (Sandbox Code Playgroud)

而不是他们必须按上传,我只是希望文件一旦选择文件就自动上传.有没有办法做到这一点?

asp.net ajaxcontroltoolkit

6
推荐指数
1
解决办法
5024
查看次数

如何在checkboxlist控件中的复选框之前或之后添加AjaxControlToolkit的Gravatar控件

我有一个CheckBoxList控件,其中包含动态生成的复选框项.此复选框列表将包含用户名.我正在使用AjaxControlToolkit中的Gravatar控件来允许用户拥有自己的个人资料图片.我想要的是当一个带有用户名作为文本的复选框添加到CheckBoxList时,还应该在复选框之前或之后添加Gravatar控件,显示用户的相应显示图片.我想到的另一种方法是使用复选框和gravatar来设置自定义用户控件.但如果有任何其他精简和简单的解决方案可用,那么请建议我.以下是代码:

<table class="style1">
                <tr>
                    <td align="right" style="padding: 5px" width="25%">
                        Username/Email:</td>
                    <td style="padding: 5px">
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        &nbsp;<asp:Button ID="Button1" runat="server" CssClass="newButton" 
                            onclick="Button1_Click" Text="Search" />
                    </td>
                </tr>
                <tr>
                    <td align="right" style="padding: 5px" valign="top" width="25%">
                        Results:</td>
                    <td style="padding: 5px">
                        <asp:CheckBoxList ID="CheckBoxList1" runat="server" 
                            onselectedindexchanged="CheckBoxList1_SelectedIndexChanged" 
                            AutoPostBack="True">
                        </asp:CheckBoxList>
                    </td>
                </tr>
                <tr>
                    <td align="right" style="padding: 5px" width="25%" valign="top">
                        Selected People:</td>
                    <td style="padding: 5px">
                        <asp:ListBox ID="ListBox1" runat="server" Height="149px" Width="260px">
                        </asp:ListBox>
                    </td>
                </tr>
            </table>
Run Code Online (Sandbox Code Playgroud)

如您所见,它还有一个列表框,其中包含checkboxlist中的选定项目.如果可能的话,请为列表框建议我.

c# asp.net gravatar ajaxcontroltoolkit c#-4.0

6
推荐指数
1
解决办法
579
查看次数

无法修改Controls集合,因为该控件包含代码块(即<%...%>)ajax toolkit html编辑器

<%@ Page Language="C#" MasterPageFile="~/master/111.master" AutoEventWireup="true" CodeFile="Template.aspx.cs" Inherits="_Template" Title="Untitled Page" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit.HTMLEditor" TagPrefix="cc1" %>


<asp:Content ID="Content3" ContentPlaceHolderID="cphhead" Runat="Server">   
    <script type="text/javascript" src="../css-js/jquery-1.8.3.min.js"></script>
</asp:Content>


<asp:Content ID="Content2" ContentPlaceHolderID="cphcontent" Runat="Server">
     <cc1:Editor ID="Editor1" Width="1028px" Height="300px" runat="server" SuppressTabInDesignMode="true" ActiveMode="Design" />                  
</asp:Content>


 <asp:Content ID="Content5" ContentPlaceHolderID="cphFooterJS" Runat="Server">
        </asp:Content>
Run Code Online (Sandbox Code Playgroud)

我尝试使用命名空间添加母版页ajax html编辑器,但我有这个错误: System.Web.HttpException:无法修改Controls集合,因为控件包含代码块(即<%...%>).

怎么解决?谢谢你的回答.

html javascript asp.net master-pages ajaxcontroltoolkit

6
推荐指数
2
解决办法
6万
查看次数

自动完成扩展程序 - 滚动条会导致结果关闭?

我有一个使用文本框,自动完成扩展程序和autocompletedropdownpanel运行的网站.基本上,当用户开始在文本框中键入名称时,结果会在几秒钟内显示.由于可能有数百行,我需要一个滚动条.然后使用只选择名称.出于某种原因,它现在已经坏了(也许用IE更新?因为它在Chrome中工作正常)现在当用户使用滚动条时它会自动关闭结果并且无法进行选择.我无法在网上找到解决方案.我需要使用更新的ajax套件吗?如果是这样,我该怎么做呢?或者我可以添加或更改我的代码吗?

更新:我发现此问题仅出现在Surface Pro平板电脑上.所以使用IE11和平板电脑会导致这种情况.即使平板电脑与普通的键盘和鼠标对接.

是否可以使用cancelBubble函数为带滚动条的下拉面板?我有一个问题,当点击滚动条滚动抛出行后,鼠标被释放,结果关闭.从阅读我认为我需要某种cancelBubble事件或停止传播

  <asp:Panel ID="autocompleteDropDownPanel" runat="server" 
            ScrollBars="Auto" Height="200px" Font-Size="Medium" 
            HorizontalAlign="Left" Wrap="False" />

 <asp:AutoCompleteExtender ID="AutoCompleteExtender" runat="server" 
        DelimiterCharacters="" Enabled="True" ServicePath="AutoComplete.asmx" 
                ServiceMethod="GetCompletionList" TargetControlID="DoctorNameTextBox" 
                UseContextKey="true" ContextKey="StateDropDown"
                CompletionListElementID="autocompleteDropDownPanel" 
                onclientitemselected="getSelected"
                ShowOnlyCurrentWordInCompletionListItem="True" CompletionInterval="100" 
                MinimumPrefixLength="2">

    </asp:AutoCompleteExtender>
Run Code Online (Sandbox Code Playgroud)

vb.net asp.net ajax autocomplete ajaxcontroltoolkit

6
推荐指数
1
解决办法
678
查看次数