几个DNN里的技巧
一,保存密码框中的数字
一般的,当用户登陆的时候填错用户名或密码,IE会自动将密码 框的内容给清空掉,但有没有办法保存下来呢,有,下面是DNN的保存方法,(我以前在论坛里也看见过这贴子,但怎么做的我也忘记了)
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
txtPassword.Attributes.Add("value", txtPassword.Text)‘’‘’是这一句
If Page.IsPostBack = False Then
Try
SetFormFocus(txtUsername)
Catch
'control not there or error setting focus
End Try
End If
Dim objSystemMessages As New SystemMessageController
lblLogin.Text = objSystemMessages.FormatSystemMessage(PortalId, "MESSAGE_LOGIN_INSTRUCTIONS", UserId)
End Sub
二,打开页面时自动将焦点放到指定位置
'set focus to any control
Public Sub SetFormFocus(ByVal control As Control)
If Not control.Page Is Nothing And control.Visible Then
If control.Page.Request.Browser.JavaScript = True Then
' Create JavaScript
Dim sb As New System.Text.StringBuilder
sb.Append("<SCRIPT LANGUAGE='JavaScript'>")
sb.Append("<!--")
sb.Append(ControlChars.Lf)
sb.Append("function SetInitialFocus() {")
sb.Append(ControlChars.Lf)
sb.Append(" document.")
' Find the Form
Dim objParent As control = control.Parent
While Not TypeOf objParent Is System.Web.UI.HtmlControls.HtmlForm
objParent = objParent.Parent
End While
sb.Append(objParent.ClientID)
sb.Append("['")
sb.Append(control.UniqueID)
sb.Append("'].focus(); }")
sb.Append("window.onload = SetInitialFocus;")
sb.Append(ControlChars.Lf)
sb.Append("// -->")
sb.Append(ControlChars.Lf)
sb.Append("</SCRIPT>")
' Register Client Script
control.Page.RegisterClientScriptBlock("InitialFocus", sb.ToString())
End If
End If
End Sub
' convert datareader to dataset
'转换DATAREADER为dataset
Public Function ConvertDataReaderToDataTable(ByVal reader As IDataReader) As DataTable
' create datatable from datareader
Dim objDataTable As New DataTable
Dim intFieldCount As Integer = reader.FieldCount
Dim intCounter As Integer
For intCounter = 0 To intFieldCount - 1
objDataTable.Columns.Add(reader.GetName(intCounter), reader.GetFieldType(intCounter))
Next intCounter
' populate datatable
objDataTable.BeginLoadData()
Dim objValues(intFieldCount - 1) As Object
While reader.Read()
reader.GetValues(objValues)
objDataTable.LoadDataRow(objValues, True)
End While
reader.Close()
objDataTable.EndLoadData()
Return objDataTable
End Function
一般的,当用户登陆的时候填错用户名或密码,IE会自动将密码 框的内容给清空掉,但有没有办法保存下来呢,有,下面是DNN的保存方法,(我以前在论坛里也看见过这贴子,但怎么做的我也忘记了)
二,打开页面时自动将焦点放到指定位置
以后会继续将里面的一些我们可能会用到的小技巧贴出来。
花了几天时间,也已经将DNN里的SKIN.VB代码消化的差不多了,而且对DNN的运行也有了许多更多的了解,本来很想写点什么的,但,发现实在没那个心情,对BLOG的更新告一段落了……另外我也会关注DNN 3.0的
另外:BOY119,上次你说的那个模块分页我已经解决了,如果有时间我发送给你吧或到时 我也将对那个模块的分页功能分析的思路及修改我也写出来:)
14:31:36
三,将datareader类型数据转换为dataset数据类型
浙公网安备 33010602011771号