使用 ASP.NET AJAX TOOLKIT 和 JQUERY UI DIALOG 进行计时

Timing w/ ASP.NET AJAX TOOLKIT and JQUERY UI DIALOG

我正在尝试在项目中使用 AJAX 工具包。我之前刚刚完成了 jquery AJAX 的事情。还好,各有各的坎

我有一个包含项目列表的页面。 DBL 单击一个项目应该在叠加层中显示一个编辑表单。

这一切基本上都在起作用。 DBL Click 调用执行 _DoPostBack 的函数,然后打开对话框。我的问题只是时间问题。 DIALOG() 函数在刷新之前复制我的 DIV。

我的方法基于我迄今为止阅读的所有内容。如果有更好的方法我还没有偶然发现,我非常感谢在正确方向上的观点。

这里是我认为重要的部分

该列表是一个用户控件。它在页面加载时加载。每行都有一个带有正确 ID 的 dblclick 处理程序。我发现创建这个服务器端最简单。

编辑表单是更新面板中的用户控件。触发器是 HTML BUTTON 的 ONSERVERCLICK 事件(这就是建议我这样做的方式)。

我双击的第一行显示了一个带有空白表格的对话。 我双击的第二行显示了我应该在第一个 dbl clcik 中看到的对话框。 等等等等。 我可以使 div 可见。它们加载正确。只需要很短的时间。

我想我需要的是一种将回调传递给 __doPostBack 的方法,这样我就可以在加载完成时打开对话框。 我玩过带有 JS 睡眠功能并使用计时器的游戏,这不是正确的方法。

我的问题是 a) 是否有一些使用 ajax 工具包来做这样的事情的好例子。我看过了。组合 jquery.ajax 似乎会带来一组单独的问题,需要脚本管理器来呈现控件。如果可能的话,我宁愿坚持使用 ATK。 (如果有好的例子,欢迎阅读)

b) 有没有办法在 __DoPostBack 完成时采取行动。这似乎是完成我正在尝试做的事情的最简单方法。我应该使用单独的方法吗?

这是响应row.dblClick的js函数

function showRouteDetails(id) {

        var opts = {
            title: "Route Details",
            autoOpen: false,
            modal: true,
            buttons: [
               {
                   text: "OK",
                   click: function () { $(this).dialog("close"); }
               },
               {
                   text: "cancel",
                   click: function () { alert('cancel'); }
               }

            ]
        }


        'call the postback to refresh the user control w/ the correct data
        __doPostBack("ctl00$ContentPlaceHolder1$btnLoadRoute", String(id));

        'show the dialog.  the named div surrounds the RouteEdit user control
         'the first time i dbl click, its blank. The second time, it shows the 
         'first route.... its just happening too early
        var div = $("#PutRouteHere");
        div.dialog(opts);
        div.dialog('open');


        beep();
    }

我很乐意 post 如果有人想看任何其他作品

蒂亚 格雷格

既然您使用的是 AjaxControlToolkit,我会建议您在没有 jQuery UI Dialog 的情况下成功使用的方式。

我使用 Modal Popup 定位带有 UpdatePanel 的 Panel(里面有您的编辑表单)。单击 DBL 时,您会触发一个服务器事件来更新 UpdatePanel 内容并最终显示模态弹出窗口。

希望对您有所帮助。

所以在你 post 一个问题之后,你总是想出一种新的方法来 google 它...

Callback after __doPostBack()?

这个 posting 很好地准确地解决了这个问题。