Et site med kursusmaterialer, der bruges i forbindelse med undervisning i forskellige it relaterede emnerEn skøn grafik du kan nyde mens der undervises.
   

Send spørgsmål eller kommentar til Thor - klik her: Send en kommentar til Thor - omkring undervisning eller kursus  Søg i kursusmaterialerne. Kan bruges i forbindelse med undervisningen eller efter kurset  Til forsiden af kursusmaterialer.dk 

 

ASP.NET II / Class / Hvordan gør man


ASP.NET fjernundervisningskursus

- Vil du gerne på kursus NU?

- Vil du gerne lære i dit eget tempo?

- Har du ikke tid til at tage på kursus ude i byen?

Så køb et kursus i ASP.NET som fjernundervisning på www.it-fjernundervisning.dk


Custom controls

Jeg har fundet denne lille beskrivelse hos 4GuysFromRolla

Visual Studio .NET

Arbejder du i VS.NET skal du højreklikke på dit projekt i "Solution Explorer" og vælge Add New Item og dernæst vælge Class i vinduet - giv den et fornuftigt navn.

Dernæst kan du paste koden her ind i classen:

VB.NET

    Public Sub New()
      MyBase.New()
    End Sub
    Public Shared Function Add (A As Single, B As Single) As Single
      Add = A + B
    End Function
    Public Function Subs (A As Single, B As Single) As Single
      Subs = A - B
    End Function
    Public Function Mul (A As Single, B As Single) As Single
      Mul = A * B
    End Function
    Public Function Div (A As Single, B As Single) As Single
      If B = 0 then
        Div = -1
      Else
        Div = A / B
      End If
    End Function

Når du så vil bruge objektet i en kode skal man øverst i codebehindfilen importere klassen med kommandoen:

Imports Udvikling.math (i stedet for Udvikling skal du skrive navnet på dit projekt)

Og sådan her kan du bruge klassen:

        Dim MathComponent As New math
        Dim AddResult, SubResult As Single
        AddResult = MathComponent.Add(CSng(TextBox1.Text), CSng(TextBox2.Text))
        SubResult = MathComponent.Subs(CSng(TextBox1.Text), CSng(TextBox2.Text))
        Label1.Text = AddResult

C#.NET

 public class Math
 {
  public Math()
  {}
  public static decimal Add (decimal A, decimal B)
  {
   return  A + B;   
   }
  public decimal Subs (decimal A, decimal B)
  {
   return A - B;
  }
  public decimal Mul (decimal A, decimal B)
  {
    return A * B;
   }
  public decimal Div (decimal A, decimal B)
  {
   decimal Div;
   if (B == 0)
   {
    Div = -1;
   }
   else
   {
    Div = A / B;
   }
   return Div;
  }
 }
private void Page_Load(object sender, System.EventArgs e)
  {
   Label1.Text += Math.Add(3,4);
   Math opr = new Math();
   Label1.Text += opr.Subs(4,2);
  }

WebMatrix

Nedenstående kode kan du lave ved at vælge at lave en class når du opretter en ny fil. Den gemmes som en .vb fil.

Imports System
Imports Microsoft.VisualBasic

Namespace DOTNETMath
  Public Class Operations
    
    Public Sub New()
      MyBase.New()
    End Sub

    Public Function Add (A As Single, B As Single) As Single
      Add = A + B
    End Function

    Public Function Subs (A As Single, B As Single) As Single
      Subs = A - B
    End Function

    Public Function Mul (A As Single, B As Single) As Single
      Mul = A * B
    End Function

    Public Function Div (A As Single, B As Single) As Single
      If B = 0 then
        Div = -1
      Else
        Div = A / B
      End If
    End Function

  End Class
End Namespace

Når du har oprettet dokumentet skal det komplieres - det gør du med kommandoen:

vbc /t:library /out:DOTNETMath.dll math.vb 

Du skal nok lige finde vbc.exe for at få det til at køre

For at bruge funktionerne skal du importere din klasse med linjen

<%@ Import Namespace = "DOTNETMath" %>

i din aspx kode.

Her følger så lidt kode, der viser, hvordan funktionerne bruges:

' Create an instance of the component
Dim MathComponent as Operations
MathComponent = New Operations()

.
.
.

Dim AddResult, SubResult as Single

AddResult = MathComponent.Add (CSng (FirstNum), CSng (SecondNum))
SubResult = MathComponent.Subs (CSng (FirstNum), CSng (SecondNum))

I visse situationer kunne man tænke sig at styre det layoutmæssige fra en class file også. Nedenstående eksempel viser, hvordan man kan gøre det:

Select Case objQuestion.Attributes.ItemOf("Type").Value
                Case "Text"
                    Dim newRow As New TableRow()
                    Tabel.Controls.Add(newRow)
                    Dim newCellLabel As New TableCell()
                    newCellLabel.ColumnSpan = 2
                    newRow.Controls.Add(newCellLabel)
                    Dim Label As New Label()
                    Label.Text = "<h2>" + objQuestion.SelectSingleNode("Heading").InnerText + "</h2>"
                    Label.Text += objQuestion.SelectSingleNode("Content").InnerText
                    newCellLabel.Controls.Add(Label)
                Case "TextBox"
                    Dim newRow As New TableRow()
                    Tabel.Controls.Add(newRow)
                    Dim newCellLabel As New TableCell()
                    newCellLabel.ColumnSpan = 2
                    newRow.Controls.Add(newCellLabel)
                    Dim Label As New Label()
                    Label.Text = "<h2>" + objQuestion.SelectSingleNode("Heading").InnerText + "</h2>"
                    Label.Text += objQuestion.SelectSingleNode("Label").InnerText
                    newCellLabel.Controls.Add(Label)
                    Dim newCellBox As New TableCell()
                    newRow.Controls.Add(newCellBox)
                    Dim Textbox As New Textbox()
                    Textbox.ID = objQuestion.Attributes.ItemOf("Name").Value
                    Textbox.Text = objQuestion.SelectSingleNode("Default").InnerText
                    newCellBox.Controls.Add(Textbox)
                Case "TextArea"
                    Dim newRow As New TableRow()
                    Tabel.Controls.Add(newRow)
                    Dim newCellLabel As New TableCell()
                    newCellLabel.ColumnSpan = 2
                    newRow.Controls.Add(newCellLabel)
                    Dim Label As New Label()
                    Label.Text = "<h2>" + objQuestion.SelectSingleNode("Heading").InnerText + "</h2>"
                    Dim newRow2 As New TableRow()
                    Tabel.Controls.Add(newRow)
                    Dim newCellLabel2 As New TableCell()
                    Label.Text = objQuestion.SelectSingleNode("Label").InnerText
                    newCellLabel.Controls.Add(Label)
                    Dim newCellBox As New TableCell()
                    newRow.Controls.Add(newCellBox)
                    Dim Textbox As New TextBox()
                    Textbox.TextMode = TextBoxMode.MultiLine
                    Textbox.ID = objQuestion.Attributes.ItemOf("Name").Value
                    Textbox.Text = objQuestion.SelectSingleNode("Default").InnerText
                    newCellBox.Controls.Add(Textbox)
            End Select

Opgave

Prøv det...

   
Spacer Spacer Spacer Spacer