Monday 7 January 2008

Messagebox in ASP.Net using div

1. Place a 'place holder' control in asp.net page and
2. call the class below with setting values for the properties

sample:
Dim newBox As MessageBox = New MessageBox()
newBox.MessageBoxButton = 2
newBox.MessageBoxTop = 150
newBox.MessageBoxLeft = 50
newBox.MessageBoxWidth = 500
newBox.MessageBoxHeight = 150
newBox.MessageBoxButtonWidth = 50
newBox.MessageBoxIDYes = "yesno"
newBox.MessageBoxIDNo = "yesno"
newBox.MessageBoxButtonYesText = "Continue"
newBox.MessageBoxButtonNoText = "Cancel"
NewBox.MessageBoxTitle = "Postcode has been covered."
newBox.MessageBoxMessage = aMessage '"Do you want to continue?"
newBox.MessageBoxImage = "images/information.gif"
PlaceHolder1.Controls.Add(newBox)



'Main Class here
Imports Microsoft.VisualBasic
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControls
Imports System.Web.UI.HtmlControls

Imports System.IO
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Drawing2D


Public Class js

Public Function js()
End Function
End Class

Public Class MessageBox
Inherits WebControl
Private strLeft As String
Private strTop As String
Private intButton As Integer
Private strMessage As String

Private strTitle As String
Private strImage As String
Private strCss As String
Private strCssTitle As String
Private strCssMessage As String
Private strButtonYes As String
Private strButtonNo As String
Private strButtonCancel As String
Private strButtonWidth As Integer
Private strMessageBoxIDYes As String
Private strMessageBoxIDNo As String
Private strMessageBoxIDCancel As String

Private intMessageBoxWidth As Integer
Private intMessageBoxHeight As Integer
Private intMessageBoxImageWidth As Integer
Private intMessageBoxImageHeight As Integer
Dim homedirectory As String

Private strMessageBoxWidth As String
' Message box left position

#Region "properties"


Public Property MessageBoxLeft() As String

Get
Return strLeft
End Get

Set(ByVal Value As String)
strLeft = Value
End Set

End Property

' Message box top position

Public Property MessageBoxTop() As String

Get
Return strTop
End Get

Set(ByVal Value As String)
strTop = Value
End Set

End Property

' Number of buttons you want to display in the message box

Public Property MessageBoxButton() As Integer

Get
Return intButton
End Get



Set(ByVal Value As Integer)
intButton = Value
End Set

End Property

' Customize message you want to display in the message box

Public Property MessageBoxMessage() As String

Get
Return strMessage
End Get

Set(ByVal Value As String)
strMessage = Value
End Set

End Property

' Title you want to display in the message box

Public Property MessageBoxTitle() As String

Get
Return strTitle
End Get

Set(ByVal Value As String)
strTitle = Value
End Set

End Property

' Image you want to display in the message box (like information / warning)

Public Property MessageBoxImage() As String

Get
Return strImage
End Get

Set(ByVal Value As String)
strImage = Value
End Set

End Property

' Message box ID for Yes button

Public Property MessageBoxIDYes() As String

Get
Return strMessageBoxIDYes
End Get

Set(ByVal Value As String)
strMessageBoxIDYes = Value
End Set

End Property

' Message box ID for No button

Public Property MessageBoxIDNo() As String

Get
Return strMessageBoxIDNo
End Get

Set(ByVal Value As String)
strMessageBoxIDNo = Value
End Set

End Property

' Message box ID for Cancel button

Public Property MessageBoxIDCancel() As String

Get
Return strMessageBoxIDCancel
End Get



Set(ByVal Value As String)
strMessageBoxIDCancel = Value
End Set

End Property

' Style you want to incorporate for message box

Public Property MessageBoxCss() As String

Get
Return strCss
End Get

Set(ByVal Value As String)
strCss = Value
End Set

End Property

Public Property MessageBoxCssTitle() As String

Get
Return strCssTitle
End Get

Set(ByVal Value As String)
strCssTitle = Value
End Set

End Property

Public Property MessageBoxCssMessage() As String

Get
Return strCssMessage
End Get

Set(ByVal Value As String)
strCssMessage = Value
End Set

End Property

' Message box Text for Yes button

Public Property MessageBoxButtonYesText() As String

Get
Return strButtonYes
End Get

Set(ByVal Value As String)
strButtonYes = Value
End Set

End Property

' Message box Text for No button

Public Property MessageBoxButtonNoText() As String

Get
Return strButtonNo
End Get

Set(ByVal Value As String)
strButtonNo = Value
End Set

End Property

' Message box Text for Cancel button
Public Property MessageBoxButtonCancelText() As String
Get
Return strButtonCancel
End Get

Set(ByVal Value As String)
strButtonCancel = Value
End Set

End Property



' Message box buttons width
Public Property MessageBoxButtonWidth() As Integer

Get
Return strButtonWidth
End Get

Set(ByVal Value As Integer)
strButtonWidth = Value
End Set

End Property

'' Message box width
'Public Property MessageBoxWidth() As Integer

' Get
' Return intMessageBoxWidth
' End Get

' Set(ByVal Value As Integer)
' intMessageBoxWidth = Value
' End Set

'End Property

' Message box width
Public Property MessageBoxWidth() As String

Get
Return strMessageBoxWidth
End Get

Set(ByVal Value As String)
strMessageBoxWidth = Value
End Set

End Property

' Message box height

Public Property MessageBoxHeight() As Integer

Get
Return intMessageBoxHeight
End Get

Set(ByVal Value As Integer)
intMessageBoxHeight = Value
End Set

End Property

' Message box image width
Public Property MessageBoxImageWidth() As Integer

Get
Return intMessageBoxImageWidth
End Get

Set(ByVal Value As Integer)
intMessageBoxImageWidth = Value
End Set

End Property

' Message box image height
Public Property MessageBoxImageHeight() As Integer

Get
Return intMessageBoxImageHeight
End Get

Set(ByVal Value As Integer)
intMessageBoxImageHeight = Value
End Set

End Property

#End Region

Protected Friend layer As HtmlGenericControl
Protected Friend ilayer As HtmlGenericControl
Protected Friend img As HtmlGenericControl
Protected Friend div As HtmlGenericControl
Protected Friend ButtonOK As Button
Protected Friend ButtonYes As Button
Protected Friend ButtonNo As Button
Protected Friend ButtonCancel As Button
Protected Alertimage As System.Web.UI.WebControls.Image

Public Sub New()

MyBase.New("div")

End Sub

Protected Overrides Sub OnInit(ByVal e As EventArgs)

MyBase.OnInit(e)

' Default properties settings for message box control

If strLeft Is Nothing Then
strLeft = "250"
End If


If strTop Is Nothing Then
strTop = "250"
End If


If strTitle Is Nothing Then
strTitle = "MessageBox"
End If

If intButton < 0 Then
intButton = 1
End If

If strMessageBoxIDYes Is Nothing Then
strMessageBoxIDYes = "MessageBoxIDYes"
End If

If strMessageBoxIDNo Is Nothing Then
strMessageBoxIDNo = "MessageBoxIDNo"
End If

If strMessageBoxIDCancel Is Nothing Then
strMessageBoxIDCancel = "MessageBoxIDCancel"
End If

If strCss Is Nothing Then
strCss = ""
End If

If strCssMessage Is Nothing Then
strCssMessage = ""
End If

If strCssTitle Is Nothing Then
strCssTitle = ""
End If


If strMessage Is Nothing Then
strMessage = "No message to display here."
End If


If intButton = 1 Or intButton > 3 Or intButton < 1 Then
If strButtonYes Is Nothing Then
strButtonYes = "OK"
End If

ElseIf intButton > 1 And intButton < 4 Then
If strButtonYes Is Nothing Then
strButtonYes = "Approve"
End If

If strButtonNo Is Nothing Then
strButtonNo = "Cancel"
End If

If strButtonCancel Is Nothing Then
strButtonCancel = "Ignore"
End If

End If

If strButtonWidth < 5 Then
strButtonWidth = 70
End If


If intMessageBoxWidth < 10 Then
intMessageBoxWidth = 250
End If


If intMessageBoxHeight < 1 Then
intMessageBoxHeight = 8
End If


If intMessageBoxImageWidth < 5 Then
intMessageBoxImageWidth = 36
End If


If intMessageBoxImageHeight < 5 Then
intMessageBoxImageHeight = 36
End If


If homedirectory Is Nothing Then
homedirectory = Me.Page.Request.PhysicalApplicationPath
End If

End Sub


#Region "createChildControls"

Protected Overrides Sub createChildControls()

' Creating message box

Dim myRow As TableRow
Dim myCell As TableCell

Dim myTable As Table = New Table()
myTable.BorderWidth = New Unit(0)
myTable.CellSpacing = 0
myTable.Width = New Unit(intMessageBoxWidth)
myTable.Height = New Unit(intMessageBoxHeight)
Controls.Add(myTable)


myRow = New TableRow()
myRow.BorderWidth = New Unit(0)
myTable.Rows.Add(myRow)

myCell = New TableCell()

Dim NewLabel As Label = New Label()

NewLabel.Text = strTitle

NewLabel.CssClass = strCssTitle

myCell.Controls.Add(NewLabel)


myCell.ID = "dragbar"

myCell.ColumnSpan = 5



myCell.CssClass = strCssTitle

If strCssTitle = "" Then

myCell.ForeColor = System.Drawing.Color.White
myCell.BackColor = System.Drawing.Color.DarkBlue
myCell.Font.Name = "Verdana"
myCell.Font.Bold = True
myCell.Font.Size = New FontUnit(8)
myCell.Style.Add("CURSOR", "hand")

End If


myRow.Cells.Add(myCell)
myRow = New TableRow()
myRow.BorderWidth = New Unit(0)

myTable.Rows.Add(myRow)


myCell = New TableCell()
myCell.ColumnSpan = 5
myCell.CssClass = strCssMessage

If strCssMessage = "" Then
myCell.BackColor = System.Drawing.Color.LightGray
End If

myRow.Cells.Add(myCell)


Dim myRow1 As TableRow
Dim myCell1 As TableCell


Dim myTable1 As Table = New Table()
myTable1.BorderWidth = New Unit(0)
myTable1.CellSpacing = 0

myCell.Controls.Add(myTable1)
myRow1 = New TableRow()
myRow1.BorderWidth = New Unit(0)

myTable1.Rows.Add(myRow1)


myCell1 = New TableCell()
myCell1.CssClass = strCssMessage
myCell1.BorderWidth = New Unit(0)
myCell1.Width = New Unit(36)


Dim Alertimage As System.Web.UI.WebControls.Image = New System.Web.UI.WebControls.Image()
Alertimage.Height = New Unit(intMessageBoxImageHeight)
Alertimage.Width = New Unit(intMessageBoxImageWidth)
Alertimage.BorderWidth = New Unit(0)

Alertimage.ImageUrl = strImage
myCell1.Controls.Add(Alertimage)

myRow1.Cells.Add(myCell1)
myCell1 = New TableCell()
myCell1.CssClass = strCssMessage
myCell1.BorderWidth = New Unit(0)




myCell1.CssClass = strCssMessage

If strCssMessage = "" Then
myCell1.HorizontalAlign = HorizontalAlign.Center
myCell1.ForeColor = System.Drawing.Color.Black
myCell1.BackColor = System.Drawing.Color.LightGray
myCell1.BorderColor = System.Drawing.Color.LightGray
myCell1.Font.Name = "Verdana"
myCell1.Font.Bold = True
myCell1.Font.Size = New FontUnit(8)

End If


Dim NewLabel1 As Label = New Label()

NewLabel1.Text = strMessage

myCell1.Controls.Add(NewLabel1)

myRow1.Cells.Add(myCell1)

myRow = New TableRow()
myRow.BorderWidth = New Unit(0)
myTable.Rows.Add(myRow)

If intButton = 1 Or intButton > 3 Or intButton < 1 Then
myCell = New TableCell()
myCell.ColumnSpan = 5
myCell.BorderWidth = New Unit(0)
myCell.CssClass = strCssMessage
myCell.HorizontalAlign = HorizontalAlign.Center


If strCssMessage = "" Then
myCell.ForeColor = System.Drawing.Color.Black
myCell.BackColor = System.Drawing.Color.LightGray
myCell.Font.Name = "Verdana"
myCell.Font.Bold = True
myCell.Font.Size = New FontUnit(8)
End If


ButtonOK = New Button()
ButtonOK.ID = strMessageBoxIDYes
ButtonOK.Text = strButtonYes
ButtonOK.Width = New Unit(strButtonWidth)
ButtonOK.Style.Add("CURSOR", "hand")
myCell.Controls.Add(ButtonOK)

myRow.Cells.Add(myCell)

End If


If intButton > 1 And intButton < 4 Then
myCell = New TableCell()
myCell.CssClass = strCssMessage
myCell.BorderWidth = New Unit(0)
myCell.HorizontalAlign = HorizontalAlign.Right


If strCssMessage = "" Then
myCell.ForeColor = System.Drawing.Color.Black
myCell.BackColor = System.Drawing.Color.LightGray
myCell.Font.Name = "Verdana"
myCell.Font.Bold = True
myCell.Font.Size = New FontUnit(8)

End If

ButtonYes = New Button()
ButtonYes.ID = strMessageBoxIDYes
ButtonYes.Text = strButtonYes
ButtonYes.Width = New Unit(strButtonWidth)
ButtonYes.Style.Add("CURSOR", "hand")
myCell.Controls.Add(ButtonYes)


myRow.Cells.Add(myCell)

myCell = New TableCell()
myCell.Width = New Unit(20)
myCell.BorderWidth = New Unit(0)
myCell.CssClass = strCssMessage


If strCssMessage = "" Then
myCell.BackColor = System.Drawing.Color.LightGray
End If


myRow.Cells.Add(myCell)
myCell = New TableCell()
myCell.CssClass = strCssMessage
myCell.BorderWidth = New Unit(0)


If strCssMessage = "" Then

myCell.ForeColor = System.Drawing.Color.Black

myCell.BackColor = System.Drawing.Color.LightGray
myCell.Font.Name = "Verdana"
myCell.Font.Bold = True
myCell.Font.Size = New FontUnit(8)

End If


If intButton = 2 Then
myCell.HorizontalAlign = HorizontalAlign.Left
ElseIf intButton = 3 Then
myCell.HorizontalAlign = HorizontalAlign.Center
End If


ButtonNo = New Button()
ButtonNo.ID = strMessageBoxIDNo
ButtonNo.Text = strButtonNo
ButtonNo.Width = New Unit(strButtonWidth)
ButtonNo.Attributes("WIDTH") = strButtonWidth.ToString()
ButtonNo.Attributes("HEIGHT") = strButtonWidth.ToString()
ButtonNo.Style.Add("CURSOR", "hand")
myCell.Controls.Add(ButtonNo)
myRow.Cells.Add(myCell)


If intButton = 3 Then

myCell = New TableCell()
myCell.Width = New Unit(10)
myCell.BorderWidth = New Unit(0)
myCell.CssClass = strCssMessage


If strCssMessage = "" Then

myCell.BackColor = System.Drawing.Color.LightGray

End If


myRow.Cells.Add(myCell)
myCell = New TableCell()
myCell.CssClass = strCssMessage
myCell.BorderWidth = New Unit(0)
myCell.HorizontalAlign = HorizontalAlign.Left


If strCssMessage = "" Then
myCell.ForeColor = System.Drawing.Color.Black
myCell.BackColor = System.Drawing.Color.LightGray
myCell.Font.Name = "Verdana"
myCell.Font.Bold = True
myCell.Font.Size = New FontUnit(8)

End If


ButtonCancel = New Button()
ButtonCancel.ID = strMessageBoxIDCancel
ButtonCancel.Text = strButtonCancel
ButtonCancel.Width = New Unit(strButtonWidth)
ButtonCancel.Style.Add("CURSOR", "hand")
myCell.Controls.Add(ButtonCancel)


myRow.Cells.Add(myCell)


End If

End If

End Sub

#End Region
Protected Overrides Sub AddAttributesToRender(ByVal writer As HtmlTextWriter)

' Rendering message box control to the browser

MyBase.AddAttributesToRender(writer)
writer.AddAttribute(HtmlTextWriterAttribute.Id, "showimage")
'writer.AddAttribute(HtmlTextWriterAttribute.Style, "Z-INDEX: 9999; LEFT:" + strLeft + "px; WIDTH:" + strLeft + "px; POSITION: absolute; TOP: " + strTop + "px; filter:progid:DXImageTransform.Microsoft.Shadow(color='dimgray', direction="135," strength="3;"")
writer.AddAttribute(HtmlTextWriterAttribute.Style, "Z-INDEX: 9999; LEFT:" + strLeft + "px; WIDTH:" + strMessageBoxWidth + "px; POSITION: absolute; TOP: " + strTop + "px; filter:progid:DXImageTransform.Microsoft.Shadow(color='dimgray', direction=135), strength=3;")

End Sub

End Class

No comments: