DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块

时间:2022-10-02 03:19:21
 这篇文章将概述如何在DotNetNuke框架下应用Asp.net Ajax创建模块.

随着即将在3月15号发布的DNN4.5 大家期待已久的对Asp.net Ajax的支持将在此版中发布。

因为Asp.net Ajax 是独立于DNN安装的,所以DNN框架并不能保证你所应用的服务器是否安装Asp.net Ajax, 因此新版的DNN中增加了一个新的类DotNetNuke.Framework.AJAX, 这个类中所提供的方法可以帮助开发者判定是否可以把AJAX应用于你的方案中。

 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块

模块配置 Dependencies

开发DotNetNuke ASP.NET AJAX 模块其中的一种方法是指明System.Web.UI.ScriptManager 的从属关系在模块设置中(module configuration setting)

DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块

模块可以随意指定多个从属程序集根据需要,用分号分隔开。例如填入System.Web.UI.ScriptManager 即可应用相应功能, 但前提要求你的服务器支持Ajax.。 之后在安装模块的时候如果运行环境不符合将会有警告提示并且中断安装。

DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块

IsInstalled 和 IsEnabled

如果你希望自动判断何时使用ASP.NET AJAX 就可以使用IsInstalled和IsEnabled来设置

IsInstalled 可以判断你所应用的系统是否安装了Asp.net Ajax

IsEnabled 设置是由开发者设定是否在所开发的模块/皮肤中应用AJAX

IsInstalled

IsInstalled 使用很简单可以在调用Asp.net Ajax 功能之前用来判断。它将会返回true / false

DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke.Framework.AJAX.IsInstalled()

 

IsEnabled

IsEnabled 设置是由开发者设定是否在所开发的模块/皮肤中应用AJAX

DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke.Framework.AJAX.IsEnabled  =  True


ASP.NET AJAX 应用样例

AJAX 样例可以在此下载 (需要DNN4.5以上版本才可运行)

样例示范如何应用ASP.net Ajax在run-time

 

  1 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块Imports  DotNetNuke
  2 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块 Imports  System.Collections.Generic
  3 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
  4 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块 Namespace DotNetNuke.Modules
  5DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块Partial Class Ajax
  6DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Inherits Entities.Modules.PortalModuleBase
  7DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Dim CurrentPageIndex As Integer
  8DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Dim boolUsingAjax As Boolean = False
  9DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    
 10DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 11DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 12DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            If DotNetNuke.Framework.AJAX.IsInstalled() Then
 13DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                If dllAjax.SelectedValue = "Using Ajax" Then
 14DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                    boolUsingAjax = True
 15DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                Else
 16DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                    boolUsingAjax = False
 17DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                End If
 18DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Else
 19DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                boolUsingAjax = False
 20DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End If
 21DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 22DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            If boolUsingAjax = True Then
 23DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                DotNetNuke.Framework.AJAX.IsEnabled = True
 24DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Else
 25DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                DotNetNuke.Framework.AJAX.UpdatePanelControl.Visible = False
 26DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End If
 27DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 28DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            If Not Page.IsPostBack Then
 29DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                ShowData(1)
 30DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End If
 31DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 32DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        End Sub

 33DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 34DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        Private Sub ShowData(ByVal intCurrentPageIndex As Integer)
 35DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 36DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Dim mySqlString As New StringBuilder()
 37DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 38DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            mySqlString.Append("SELECT FriendlyName, Description ")
 39DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            mySqlString.Append("FROM {databaseOwner}{objectQualifier}DesktopModules ")
 40DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            mySqlString.Append("ORDER BY FriendlyName")
 41DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 42DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Dim colDesktopModules As New List(Of myDesktopModules)
 43DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 44DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Using dr As IDataReader = _
 45DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                CType(DataProvider.Instance().ExecuteSQL(mySqlString.ToString(), Nothing), IDataReader)
 46DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                While dr.Read
 47DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                    Dim objDesktopModules As New myDesktopModules()
 48DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                    objDesktopModules.FriendlyName = Convert.ToString(dr("FriendlyName"))
 49DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                    objDesktopModules.Description = Convert.ToString(dr("Description"))
 50DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                    colDesktopModules.Add(objDesktopModules)
 51DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                End While
 52DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End Using
 53DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 54DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Dim pagedData As New PagedDataSource()
 55DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            pagedData.DataSource = colDesktopModules
 56DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            pagedData.AllowPaging = True
 57DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            pagedData.PageSize = 10
 58DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            pagedData.CurrentPageIndex = intCurrentPageIndex - 1
 59DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 60DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Me.lblTotalPages.Text = Convert.ToString(pagedData.PageCount)
 61DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Me.lblCurrentPage.Text = Convert.ToString(pagedData.CurrentPageIndex + 1)
 62DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 63DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            If pagedData.IsFirstPage Then
 64DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                btnPrevious.Visible = False
 65DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Else
 66DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                btnPrevious.Visible = True
 67DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End If
 68DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            If pagedData.IsLastPage Then
 69DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                btnNext.Visible = False
 70DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Else
 71DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                btnNext.Visible = True
 72DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End If
 73DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 74DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Me.GridView1.DataSource = pagedData
 75DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Me.GridView1.DataBind()
 76DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 77DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        End Sub

 78DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 79DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Protected Sub Next_Click(ByVal sender As ObjectByVal e As System.EventArgs)
 80DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        CurrentPageIndex = Convert.ToInt32(Me.lblCurrentPage.Text) + 1
 81DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        ShowData(CurrentPageIndex)
 82DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    End Sub

 83DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 84DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Protected Sub btnPrevious_Click(ByVal sender As ObjectByVal e As System.EventArgs)
 85DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        CurrentPageIndex = Convert.ToInt32(Me.lblCurrentPage.Text) - 1
 86DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        ShowData(CurrentPageIndex)
 87DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    End Sub

 88DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块End Class

 89DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
 90DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块Public Class myDesktopModules
 91DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Dim _FriendlyName As String
 92DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Dim _Description As String
 93DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Public Property FriendlyName() As String
 94DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Get
 95DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                Return _FriendlyName
 96DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        End Get
 97DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        Set(ByVal value As String)
 98DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            _FriendlyName = value
 99DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        End Set
100DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    End Property

101DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    Public Property Description() As String
102DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Get
103DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                Return _Description
104DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            End Get
105DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块            Set(ByVal value As String)
106DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块                _Description = value
107DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块        End Set
108DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块    End Property

109DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
110DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块End Class

111DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
112DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块End Namespace

113 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块
114 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块

 

Host Setting中的 ASP.NET AJAX 局部渲染

此外, Host Setting 中加入了一个新的AJAX设置Partial Rendering Enabled?(局部渲染设置) 在Host Setting -> Performance Setting, 这个开启这个设置可以应用UpdatePanels来加速admin模式中屏幕上方管理模块的读取速度

 DotNetNuke 4.5: 如何创建支持Asp.net Ajax 的DNN模块

原文:Michael Washington

http://www.dotnetnuke.com/Community/BlogsDotNetNuke/tabid/825/EntryID/1358/Default.aspx