webForumDet fria alternativet

public function

.NETur .NET

5 svar · 242 visningar · startad av henrikjohansson

Medlem sedan maj 2000360 inlägg
Frågan#1

Jag har några funktioner som skall vara med på alla sidor och för att göra detta så la jag dom i en modul där jag skrev följande

Imports System.Data.OleDb
Module Modul
    Public Class Funktioner

        Shared Function CropText(ByVal sText As String, ByVal sLength As Integer) As String
            Dim iNewLength As Integer
            If Len(sText) > sLength Then
                iNewLength = InStrRev(sText, " ", sLength + 1)
                sText = Left(sText, iNewLength) & "..."
            End If
            CropText = sText
        End Function

    End Class
End Module

Detta fungerade bra tills jag ville ha en function som skall anropas från en .aspx fil.. i aspx.vb filen så var jag tvungen att inkludera modulen. Måste jag göra det på aspx sidan också isf hur? Testade att inkludera den precis likadant som på aspx sidan men det blir bara error..

Medlem sedan maj 2000360 inlägg
#2

löste det genom att lägga funktionerna i en codefile istället

här är koden ifall någon är intresserad

Imports System.Data.OleDb
Namespace CodeFile

    Public Class FunktionerOchSubbar

        Shared Function CropText(ByVal sText As String, ByVal sLength As Integer) As String
            Dim iNewLength As Integer
            If Len(sText) > sLength Then
                iNewLength = InStrRev(sText, " ", sLength + 1)
                If Not iNewLength < sLength Then
                    sText = Left(sText, iNewLength) & "...<br>Läs mer"
                End If
            End If
            CropText = sText
        End Function

        Shared Sub FillObj(ByVal obj As Object, ByVal sSQL As String)
            Dim Con As OleDbConnection = New OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings.Get("dbconn"))
            Dim DA As OleDbDataAdapter = New OleDbDataAdapter(sSQL, Con)
            Dim DT As New DataTable()
            DA.Fill(DT)
            Con.Close()
            obj.DataSource = DT
            obj.DataBind()
        End Sub

    End Class

End Namespace

och för att inkludera på .aspx.vb fil

Imports h2data2.CodeFile.FunktionerOchSubbar

och på aspx

<%@ Import namespace="h2data2.CodeFile.FunktionerOchSubbar" %>
Medlem sedan nov. 2002105 inlägg
#3

Jag är inte riktigt säker på att jag förstår frågan men jag antar följande:

Du har skapat en modul i en egen dll som innehåller en klass. Du vill anropa din moduls funktioner från dina aspx-sidor.

Om detta stämmer så skall du göra följande:

- Lägg till din dll under References genom att högerklicka på References i solution explorer och välja Add Reference.

I din kod (aspx.vb) kan du sedan skapa instanser till din modul genom t.ex.

Dim objFunktioner as new Modul.Funktioner

s = objFunktioner.CropText("", 2)
Medlem sedan maj 2000360 inlägg
#4

Vad är fördelen med att lägga det i en dll?

Medlem sedan juni 20011 732 inlägg
#5

henrikjohansson skrev:

Vad är fördelen med att lägga det i en dll?

Lätt att återanvända. Behöver du modulen i ett annat projekt så behöver du bara importera den dit. Dessutom har du koden på ett ställe vilket gör det betydligt smidigare att ändra, bygga ut, rätta buggar etc. Bland annat...

Medlem sedan maj 2000360 inlägg
#6

ok.. låter som en ganska bra ide att använda sig av en dll då..

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)