使用 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 很好地准确地解决了这个问题。
我正在尝试在项目中使用 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 很好地准确地解决了这个问题。