标签: asp.net-ajax

ASP.NET AJAX:在页面加载完成后触发UpdatePanel

我确信这很容易,但我无法弄清楚:

我有一个ASP.NET页面,上面有一些UpdatePanels.我希望页面完全加载UpdatePanels中的一些"请稍候"文本.然后,一旦页面完全加载,我想调用代码隐藏函数来更新UpdatePanel.

关于Javascript和代码隐藏的哪些组合我需要实现这个想法的任何想法?

SAL

PS:我已经尝试将我的函数调用放在Page_Load中,但是在页面交付之前运行代码,并且由于我想运行的函数需要一些时间,因此页面加载时间太长.

javascript asp.net asp.net-ajax

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

访问offsetParent时是否存在IE 6/7"未指定错误"错误的解决方法

我在一个简单的ASP.NET概念验证应用程序中使用jQuery UI的可拖动和可放置库.此页面使用ASP.NET AJAX UpdatePanel进行部分页面更新.该页面允许用户将项目放入垃圾桶div中,该div将调用从数据库中删除记录的回发,然后重新绑定该项目为药物的列表(以及其他控件).所有这些元素(可拖动项和垃圾桶div)都在ASP.NET UpdatePanel中.

这是拖放初始化脚本:

    function initDragging()
    {
        $(".person").draggable({helper:'clone'});
        $("#trashcan").droppable({
            accept: '.person',
            tolerance: 'pointer',
            hoverClass: 'trashcan-hover',
            activeClass: 'trashcan-active',
            drop: onTrashCanned
        });
    }

    $(document).ready(function(){
        initDragging();

        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function()
        {
            initDragging();
        });
    });

    function onTrashCanned(e,ui)
    {
        var id = $('input[id$=hidID]', ui.draggable).val();
        if (id != undefined)
        {
            $('#hidTrashcanID').val(id);
            __doPostBack('btnTrashcan','');
        }

    }
Run Code Online (Sandbox Code Playgroud)

当页面回发,部分更新UpdatePanel的内容时,我重新绑定了draggables和droppables.当我用光标抓住一个draggable时,我得到一个"htmlfile:Unspecified error".例外.我可以通过替换elem.offsetParent对我写的这个函数的调用来解决jQuery库中的这个问题:

function IESafeOffsetParent(elem)
{
    try
    {
        return elem.offsetParent;
    }
    catch(e)
    {        
        return document.body;
    }
}
Run Code Online (Sandbox Code Playgroud)

我还必须避免调用elem.getBoundingClientRect(),因为它会抛出相同的错误.对于那些感兴趣的人,我只需要jQuery.fn.offsetDimensions插件中的函数中进行这些更改.

我的问题是:

  • 虽然这有效,但有没有更好的方法(更干净;更好的性能;无需修改jQuery库)来解决这个问题?
  • 如果没有,在将来更新jQuery库时,管理保持我的更改同步的最佳方法是什么?例如,我可以将库扩展到我从jQuery网站下载的文件中的内联之外的其他位置.

更新:

@some它不公开,但我会看到SO是否允许我将相关代码发布到这个答案中.只需创建一个ASP.NET Web应用程序(将其命名为 …

asp.net jquery updatepanel asp.net-ajax

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

异步回发后重置滚动位置 - ASP.NET

异步回发后将滚动位置重置到页面顶部的最佳方法是什么?

异步回发是从ASP.NET GridView CommandField列启动的,并且在GridView OnRowCommand中调用ASP.NET更新面板Update方法.

我目前的应用程序是ASP.NET 3.5网站.

编辑:我收到了很多人的反馈,我最后在脚本标签中使用了PageRequestManager方法,但我的下一个问题是:

如何将其配置为仅在用户单击GridView控件中的ASP.NET CommandField时执行?我在页面上有其他按钮执行异步回发,我不想滚动到页面顶部.

编辑1:我开发了一个解决方案,我不需要使用PageRequestManager.请参阅我的后续答案以获得解决方案

c# asp.net gridview asp.net-ajax scroll-position

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

ASP.NET MVC AJAX Sys是未定义的错误

当我尝试AJAX调用时,我在MVC应用程序中的某个页面上收到"Microsoft JScript运行时错误:'Sys'未定义"错误.AJAX调用是从部分视图中进行的,该视图嵌入在多个页面中.它可以在除一个页面之外的所有页面上正常工作.我已经阅读了指向web.config文件设置和.axd映射的帖子作为可能的解决方案,但是在web.config中正确配置了应用程序,并且IIS中的.axd映射也是正确的.此外,它可以在使用此局部视图的所有页面上正常工作,除了一个.它表现得像AJAX库没有加载这一页.

对脚本文件的引用位于共享的site.master文件中.所有页面(包括不起作用的页面)都引用相同的母版页.

有任何想法吗?我已经在这个工作了两天了.谢谢.

编辑:正如Sam在下面指出的那样,似乎AJAX调用在AJAX库有机会加载之前就已经开始了.但是,AJAX调用是在页面呈现后很长时间由提交按钮触发的,因此AJAX库有足够的时间加载 - 抱歉第一次没有提供足够的信息.

asp.net asp.net-mvc asp.net-ajax

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

为什么我的ScriptReference找不到嵌入式资源?

我有一个AJAX控件项目,它有一个.js文件,配置为嵌入式资源.

我的主Web应用程序引用此项目,当我尝试加载控件时,我收到此错误:

Assembly does not contain a Web resource with name 'MyFile.js'.

这是我对getScriptReferences的实现:

public IEnumerable GetScriptReferences()
{
    // create reference to the JS
    ScriptReference jsReference = new ScriptReference();
    jsReference.Assembly = "MyNamespace";
    jsReference.Name = "MyNamespace.MyFile.js";

    return new ScriptReference[] { jsReference };
}

我不太确定我错过了什么.我已经尝试将Name参数更改为文件名,命名空间和文件名,命名空间,程序集和文件名......我没有任何运气.任何建议都表示赞赏.

c# asp.net assemblies asp.net-ajax embedded-resource

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

Comet,Ajax Push,Reverse Ajax

有人有Comet app .net的任何样本吗?我需要一个示例如何在服务器中持久保存客户端的连接?

ajax asp.net-ajax comet server-push reverse-ajax

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

使用UpdateProgress的问题

我的ASP.NET页面上有一个按钮,它从我的数据库中获取一些数据并将其显示在gridview上.

这个过程需要一段时间,所以我想我会添加一个updateprogress AJAX控件.现在,当我单击按钮时,updateprogress图像显示并且数据正在从我的数据库中成功获取(我从我在数据库中的一些日志中检查了这一点).但有两个问题:

(1)updateprogress图像仅显示约2分钟.但我的buttonclick事件大约需要5分钟才能完成.基本上,即使在我的任务完成之前,updateprogress也会停止显示,这会使其失败.

(2)GridView没有显示出来.如果我不使用scriptmanager/AJAX,它会正确显示.

有任何想法吗?

一些相关的代码片段:

<div style="position: absolute; top: 300px; left: 19px; width: 568px; height: 48px;">
    <table>
        <tr>
        <td>
    <asp:Button ID="btnGenerateReport" runat="server" Height="37px" Text="Generate Report" 
        Width="132px" onclick="btnGenerateReport_Click" />
        </td>
        <td class="style5">
    <asp:ScriptManager ID="ScriptManager1" runat="server" />
    <asp:UpdatePanel runat="server" id="Panel">
    <ContentTemplate>
            <asp:UpdateProgress ID="PageUpdateProgress" runat="server">
                <ProgressTemplate>
                    <img runat="server" src="updateprogress.gif" 
                        style="position: static; width: 32px;"> </img></ProgressTemplate>
            </asp:UpdateProgress>
            <div style="position: absolute; top: 423px; left: 9px; width: 795px; height: 984px;">
        <asp:GridView ID="Report" runat="server" 
            AllowSorting="True" AutoGenerateColumns="False" 
            Height="622px" BorderStyle="Solid" 
            Width="779px" PageSize="100" HorizontalAlign="Center">
            <Columns>
                <asp:BoundField HeaderText="AccountId" DataField="AccountId">
                <ControlStyle …
Run Code Online (Sandbox Code Playgroud)

c# asp.net ajax asp.net-ajax

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

Ajax.Actionlink将在新页面中打开

我有一个部分视图,需要在两个div之间加载,但是当调用ajax.actionlink时,它会在新浏览器窗口中打开局部视图中的内容.我使用UpdateTargetId ="ajaxReplace"

问候

asp.net-mvc asp.net-ajax

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

Paypal Payflow透明重定向,使用AJAX的SecureToken?

我正在使用Payflow Pro(https://pilot-payflowpro.paypal.com)尝试成为PCI兼容的C#VS2012 Framework 4.5 MVC应用程序.我们多年来一直在使用PayflowPro,这就是我必须使用的.从我的阅读中看来,我似乎应该使用透明重定向,所以我不会向我的网络服务器发布任何私有内容,但我不知道我是否需要这个以及我希望如何处理这个问题.我也有几个问题......

我怎么认为这一切都有效: 我的理解是你需要一个安全的语言(与Paypal的通信,旅程1).然后您发布安全数据(CC,exp,安全代码),包括securetoken(与Paypal的通信,旅程2)并接收销售的授权和交易ID.

我希望如何做到这一点: 我打算拥有一个包含所有信息(用户详细信息,运送详细信息和CC信息)的表单,当用户按下购买按钮时,我将使用AJAX处理1到我的服务器(没有发送安全的用户信息).在这里,我将创建URL + params并发送paypal我的un/pw信息以检索令牌(全部来自我的服务器).响应将返回给客户端,如果成功,我将直接通过AJAX与Paypal的网关服务器进行通信,这次发送安全的CC信息+令牌(行程#2).根据对#2行程的响应,我会让用户知道他们的购买行为是什么.旅行2不应该需要我的Paypal UN/PW信息,因为它可以很容易地在客户端看到,我包括应该识别原始交易的SecureToken.根据我的解释,我认为不需要透明重定向.或者我在这里遗漏了什么?

另外,我想使用什么交易类型?为行程#1创建"授权",然后为行程#2创建"销售"?

所以这里是细节编码类型的东西: 对于我的研发测试,我正在建立自己的名称/值对参数字符串(见下文),并通过WebRequest通过他们的沙箱/测试网址(pilot-payflowpro.paypal)与网关服务器进行通信. COM).我得到了一个成功的回复和SECURETOKEN回来了.安全令牌的初始请求(如下所示)为TRXTYPE = A(授权),不发送卡信息.我想先授权吗?

以下是我的参数(也可能包括shipto信息,但未在下面列出):

USER=myAuthUserName
&VENDOR=myAuthUserName
&PARTNER=myPartner
&PWD=myPassword
&AMT=21.43
&BILLTOFIRSTNAME=FName
&BILLTOLASTNAME=LName
&BILLTOSTREET=123 Main Street
&BILLTOSTREET2=Apt 203B
&BILLTOCITY=MyCity
&BILLTOSTATE=CA
&BILLTOZIP=77777
&BILLTOPHONENUM=4444444444
&EMAIL=myemail@somedomain.com
&CURRENCY=USD
**&TRXTYPE=A**
&SILENTTRAN=TRUE
&CREATESECURETOKEN=Y
&SECURETOKENID=a99998afe2474b1b82c8214c0824df99
Run Code Online (Sandbox Code Playgroud)

正如我所说,我得到了一个成功的响应,并转到下一步发送安全数据(CC#,EXPDATE,安全代码).当我从params中删除我的UN/PW/VENDOR /合作伙伴信息时,由于无效的用户身份验证而出现错误.但是,看到我正在动态建立第二个电话,我不能在那里使用我的PayPal/pw.我错过了什么?有人提供上述此问题或其他问题的帮助吗?

如果我需要添加任何说明,请告诉我.在此先感谢您的时间!

ajax paypal asp.net-ajax token payflowpro

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

在Ajax调用中传统:true选项和false之间的区别是什么?

所有这些都是为了丢弃MVC控制器的问题.

这是ajax的代码:

 $.ajax({
            //tipo de transferencia
            type: "POST",
            //dato a enviar
            dataType: 'Json',
            traditional:true,
            //enviar variable previamente formada contiene la estructura del modelo
            data:data,

            //liga previamente asignada esta liga contiene  la ruta controlador-metodo
            url: url,
Run Code Online (Sandbox Code Playgroud)

注意传统:真实.

ajax post asp.net-ajax

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