Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Koppla event till knappar

Postades av 2004-02-07 13:16:01 - Mikael Sand, i forum asp.net generellt, Tråden har 7 Kommentarer och lästs av 911 personer

Hejsan!
Har en egentligen ganska basal fråga som jag skäms lite över att inte kunna lösa själv men hjälp kanske jag kan få ändå...

Probemet:
Jag har en <asp:table> som jag dynamiskt skapar nya rader och celler i från Code Behind. Tabelle i sig är deklarerad som Protected WithEvents och innehåller till å börja med inga rader.
Det är i sig inget problem utan problemet ligger i att jag för varje rad skapar en knapp (eller imgagebutton) jag har inte bestämt mig ännu.
När användaren klickar på knappen ska underinformation visas för just den raden. Logiskt och inte ovanligt eller hur?
Då jag skapar knappen och lägger till den ser det ut såhär:
<code>
Dim btn as new Imagebutton()
btn.imageURL = "images/btn"
btn.CommandName = "Edit"
btn.CommanArgument = row.ThingyID
AddHandler btn.Command, AddressOf Me.ListClick
' Listclick definierad på annan plats.
td.Controls.Add(btn)
tr.Cells.Add(td)
tbl.Rows.Add(tr)
</code>
Men inte funkar det... Det funkar inte heller om jag försöker binda ClickEventet.

Övrig information: Jag har naturligtvis testat i debugläge och jag har dessutom testat med olika knapptyper.
Då knappen deklareras så kan jag inte deklarera den som annat än Dim och utan WithEvents.

Lösningen just nu är att jag istället har en LiteralControl som innehåller en dynamiskt skapad länk i HTML men ett klick på den genererar inte en postback och det vill jag helst ha.


Svara

Sv: Koppla event till knappar

Postades av 2004-02-07 13:19:11 - Pelle Johansson

Först brukar jag inte skriva Me. , men det spelar nog ingen roll här. Däremot tror jag du missat en deklaration i click-rutinen, dvs handles ListClick

<info>
Private Sub ListClick_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListClick.Click
End Sub
</info>


Svara

Sv: Koppla event till knappar

Postades av 2004-02-07 13:30:17 - Mikael Sand

Nepp!
Faktum är att jag i det läge som jag befinner mig inte ens kan kompilera om jag följer ditt råd :-)

Saken är ju den att en deklaration av en rutin som definieras för att hantera ett visst event måste vid kompilation känna till den kontroll som rutinen är kopplad till. Dessutom ska den kopplade kontrollen måste vara definierad med WithEvents.

För att lösa detta problem låter .NET dig dynamiskt lägga till eventshandlers i den interna listan.

Exempel på detta:
<code>
Public class MyClass

Protected withevents btn as ImageButtion

private Sub btn_Click(sender as object, e as eventargs)
response.write("Hello World")
End sub

Private Sub Page_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' Bind knappens klickevent till subben
if not page.ispostback then Addhandler btn.Click, AddressOf Me.btn_Click
end sub
End class
</code>
Problemet kvarstår


Svara

Sv: Koppla event till knappar

Postades av 2004-02-07 13:37:48 - Pelle Johansson

En sak jag tänker på nu är att om du bygger tabeller och rutiner så måste den rutinen köras VARJE gång du postar eller laddar sidan för annars finns inte tabellen, dina referenser och annat.


Svara

Sv: Koppla event till knappar

Postades av 2004-02-07 13:42:48 - Mikael Sand

Nja. Jag har funderat på det också och tror att jag dels kan "pilla in den" i viewstate, men annars så kommer jag cacha datan i viewstate och låter då tabellen byggas om.
Hittills så är det i alla fall inga problem med hastigheten på 20 rader...


Svara

Sv: Koppla event till knappar

Postades av 2004-02-07 13:45:44 - Pelle Johansson

så här ser en typisk rutin ut som jag skrev för några veckor sedan:

<code>
While rst.Read
a = a + 1
'
lblUnread.Text = rst("unread")
lblRead.Text = rst("total") - rst("deleted")

Dim tr As New TableRow
Dim td0 As New TableCell
Dim td1 As New TableCell
Dim td2 As New TableCell
Dim td3 As New TableCell
Dim link0 As New LinkButton
Dim link1 As New LinkButton
Dim link2 As New LinkButton
Dim chk As New CheckBox

link0.CommandArgument = rst("fromid")
link1.CommandArgument = rst("mailid")
link2.CommandArgument = rst("mailid")

td0.ID = "chk" & rst("mailid")
td0.Controls.Add(chk)
td0.Width = Unit.Pixel(20)

td1.Text = rst("namn")
td1.Width = Unit.Pixel(140)
td1.Wrap = False

link1.Text = Left(Convert.ToString(rst("dtestamp")), 10)
td2.Controls.Add(link1)
td2.Width = Unit.Pixel(80)

link2.Text = Convert.ToString(rst("subject"))
td3.Controls.Add(link2)

AddHandler link1.Command, AddressOf link_command
AddHandler link2.Command, AddressOf link_command

If rst("status") = 0 Then
td1.Font.Bold = True
td2.Font.Bold = True
td3.Font.Bold = True
End If


tr.ID = rst("mailid")
tr.Attributes.Add("onMouseOver", "this.style.backgroundColor='#FFF7D7';")
tr.Attributes.Add("onMouseOut", "this.style.backgroundColor='';")
' tr.CssClass = "cBtn"

td0.Style.Add("BORDER-BOTTOM", "#dfe8e2 1px solid")
td1.Style.Add("BORDER-BOTTOM", "#dfe8e2 1px solid")
td2.Style.Add("BORDER-BOTTOM", "#dfe8e2 1px solid")
td3.Style.Add("BORDER-BOTTOM", "#dfe8e2 1px solid")

tr.Controls.Add(td0)
tr.Controls.Add(td1)
tr.Controls.Add(td2)
tr.Controls.Add(td3)

tblMailMessages.Controls.Add(tr)

If a > 5 Then Exit While

End While
</code>

Sedan
<code>
Private Sub link_command(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs)
' hämtar id för produkt och produkttyp
Dim mailID As Integer = e.CommandArgument()
</code>

Du kanske kan hitta något som diffar där


Svara

Sv: Koppla event till knappar

Postades av 2004-02-08 16:48:23 - Mikael Sand

Nu funkar det som en dans! Jag har dock ingen som helst aning om varför :-)
I vilket fall som helst så gör nu sidan en postback även om det är ImageButtons och då kan jag nu och spara state för min tabell mellan klickningar.

Tack o store


Svara

Sv: Koppla event till knappar

Postades av 2004-02-08 20:01:33 - Pelle Johansson

Det vanligaste missen är just att det inte blir någon postback och eftersom inte listan finns då än så kan man heller inte referera till det. Skönt det löste sig.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 603
27 953
271 705
5 913
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies