65.9K
CodeProject 正在变化。 阅读更多。
Home

在DotNetNuke中使用ajax

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2013 年 10 月 11 日

CPOL

2分钟阅读

viewsIcon

8497

本文描述了如何使用 AJAX 从服务器加载数据并在 DotNetNuke 页面上显示结果。简介有很多不错的 javascript

本文描述了如何使用 AJAX 从服务器加载数据并在 DotNetNuke 页面上显示结果。

引言

有很多不错的 javascript 控制和库可以在你的 DotNetNuke 站点中使用,但你却没有使用它们。这通常是因为它们需要从服务器加载一些数据,形式为文本、JSON、XML 等。并且在用户进行了一些操作后,你可能希望更新数据库中的一些数据,但同样不需要页面重新加载。但是如何将数据传递给客户端脚本呢?使用 Visual Studio 会导致巨大的开销:你需要一个测试环境,必须计划部署等等。如果你有一个小型站点和有限的预算,你可能不会对此感到满意。但是有一种方法可以快速完成它,而无需任何编译、部署、测试环境和其他东西。

这里需要完成 3 个步骤

  • 编写 SQL 代码
  • 创建服务器端代码,格式化数据并将其发送到客户端
  • 编写客户端代码,启动该过程并将数据发送到 UI 控件。

所有这些都可以使用 DotNetNuke 基于浏览器的开发环境轻松完成 - XsltDb。在这里,我向你展示两种从服务器向客户端传递数据的方法:使用 AJAX 和提供 URL。

使用 javascript 函数访问服务器

这是我们希望在客户端拥有的

   getSomeDataFromServer(a,b,c, function(downloadedData){
someControl.data = downloadedData;
});

一些函数将一些参数发送到服务器,并在完成时调用回调函数。为了创建这样的函数,我使用 XsltDb。将一个新的 XsltDb 模块放在你需要这个 javascript 函数的页面上,并将以下代码写入其中

  ##handler: getUsers(searchKey)
<xsl:copy-of select="mdo:sql('
select UserID, DisplayName from {databaseOwner}[{objectQualifier}Users]
where Username like @searchKey
', 'user', '@searchKey', mdo:request('searchKey'))"/>

就这样!上述三个步骤已经完成。 注意! 此模块必须是 超级模块(代码编辑器上方的复选框),因为它直接访问数据库。此函数按 DisplayName 搜索用户。用法如下

  alert(getUsers('%bu%'));  /* Synchronous */
getUsers('%bu%', function(users){ /* Asynchronous */
alert(users);
});

创建一个返回一些数据的 XML 的 URL

再次,将一个新的 XsltDb 模块放在页面上。粘贴以下代码并选中 "超级模块" 选项

<xsl:if test="mdo:request('service')">
<xsl:copy-of select="mdo:sql('
select UserID, DisplayName from {databaseOwner}[{objectQualifier}Users]
where Username like @searchKey
', 'user', '@searchKey', mdo:request('searchKey'))"/>
</xsl:if>

将别名字段配置为 users。之后,你可以像这样使用该服务

  $.get('/DesktopModules/XsltDb/ws.aspx?service=users&searchKey='
+ escape('%bu%'), function(xml){
alert((new XMLSerializer()).serializeToString(xml));
});

正如你所见,在 DotNetNuke 中使用 AJAX 非常简单!

使用的工具

本文使用的工具


 

© . All rights reserved.