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


Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 14:59:52 - Joachim Feldt, i forum asp.net generellt, Tråden har 8 Kommentarer och lästs av 853 personer

Hej,
Jag loopar igenom ett dataset och bygger en asp-tabell dynamiskt.
För varje varv i loopen bygger jag tabellceller och lägger in en button, btnAddUser.

Hur kommer jag åt Click-eventet för knapparna i varje rad ochhur skriver jag för att anropa eventet??

Så här ser den delen av koden ut:

        'Button
        Dim btnAddUser As System.Web.UI.WebControls.Button
        'ASP TableRow object
        Dim newRow As System.Web.UI.WebControls.TableRow
        'ASP TableCell object
        Dim newColumn As System.Web.UI.WebControls.TableCell

          For Each tdrDepartment In dvDepartment.Table.Select("STATUS = 'ACTIVE'")

                'Create new row
                newRow = New System.Web.UI.WebControls.TableRow
                newRow.EnableViewState = True
                newRow.Enabled = True

                
                'Create new column and set buttons
                newColumn = New System.Web.UI.WebControls.TableCell
                newColumn.Width = New Unit(30)
                btnAddUser = New System.Web.UI.WebControls.Button
                btnAddUser.CssClass = "buttons"
                btnAddUser.Attributes.Add("Value", tdrDepartment.OBJECTID)
                btnAddUser.Text = "Remove"
                newColumn.Controls.Add(btnAddUser)
                btnAddUser = Nothing

                'Add column to row
                newRow.Cells.Add(newColumn)
                'Add row to table
                tblDepartments.Rows.Add(newRow)

                'Set column object to nothing
                newColumn = Nothing
                'Set row object to nothing
                newRow = Nothing

            Next


Lite hjälp please..!

/Jocke


Svara

Sv: Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 15:20:15 - Martin Emanuelsson

Finns det nån speciell anledning till att du inte binder dig mot t.ex. en DataGrid eller en Repeater eller nåt liknande? Och därifrån använder dig av OnItemCommand-funktionen?


Svara

Sv:Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 15:26:54 - Joachim Feldt

Ja, det finns det...

Inne i tabellen kommer jag att göra en mängd andra saker, så detta är en liten del.
Då kändes det enklare att bygga tabellen själv än att börja grotta ner sig i datagrids. Om jag bara kan komma åt click-eventet, vill säga...:)

/Jocke


Svara

Sv: Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 15:36:26 - Martin Emanuelsson

Jag skulle nog ändå rekommendera dig att kolla på en repeater, som kan ses som att du loopar igenom ditt dataset och skapar rad för rad, utan att repeatern i sin tur skapar tabellrader, celler m.m. utan det får du skapa helt själv.

Får man då fråga dig vad det är för mängd av saker du ska göra i tabellen som inte skulle gå att göra i en repeater? Ursäkta om jag är lite störig kanske...


Svara

Sv:Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 15:46:26 - Joachim Feldt

Du är inte störig!!

Det är lite synd att man inte kan ladda upp filer hit, då kunde jag visa dig.
Jag gör så här:
Jag klistrar in lite ren html kod, som du kan kopiera och klistra in i en text fil, så kan du kolla hur det är tänkt. Om du har tid o lust förstås!
Kolumnen till vänster visar olika avdelningar. Kolumnen i mitten visar valda namn för en avdelning. Framför varje namn är det ett kryss, klickar man på det skall användaren tas bort.

Nästa kolumn kommer knappen.
Med den skall man lägga till ett nytt namn till avdelningen. Man markerar ett, eller flera namn i listboxen längst till höger och klickar på knappen. Då skall namnen man valt läggas till.

Är du med?

Här kommer koden:
<code>
<html>
<head>
</head>

<body>

<table width="700">
<tr>
<td valign="top" width="500">
<table border="1" width="500">
<tr>
<td valign="top" width="220">Molecular Pharmacology</td>
<td valign="top" width="230">X Joachim Feldt<br>X Kalle Svensson<br>X Stina Johansson</td>
<td valign="top" width="50"><input type="button" value="<<"></td>
</tr>
<tr>
<td valign="top">Molecular Sciences</td>
<td valign="top">X Joachim Feldt<br>X Kalle Svensson<br>X Stina Johansson</td>
<td valign="top"><input type="button" value="<<"></td>
</tr>
<tr>
<td valign="top">Medicinal Chemistry</td>
<td valign="top">X Joachim Feldt<br>X Kalle Svensson<br>X Stina Johansson</td>
<td valign="top"><input type="button" value="<<"></td>
</tr>
<tr>
<td valign="top">Discovery Informatics</td>
<td valign="top">X Joachim Feldt<br>X Kalle Svensson<br>X Stina Johansson</td>
<td valign="top"><input type="button" value="<<"></td>
</tr>
<tr>
<td valign="top">Integrative Pharmacology</td>
<td valign="top">X Joachim Feldt<br>X Kalle Svensson<br>X Stina Johansson</td>
<td valign="top"><input type="button" value="<<"></td>
</tr>
</table>
</td>
<td valign="top" width="200">
<select size="10" name="lj">
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
<option>Kalle Jönsson></option>
</select>
</td>
</tr>
</table>


</body>

</html>
</code>

Har du någon bra annan lösning så gärna för mig...:)

Tack för hjälpen så länge!!

/Jocke


Svara

Sv: Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 16:43:26 - Martin Emanuelsson

OK, ett förslag... Blev tyvärr inga repeaters utan DataGrids... Kopiera koden som den ser ut så hoppas jag att det ska funka för dig...

ASPX-koden:
<code>
<table>
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<tr>
<td valign="top">
<%#Container.DataItem("name")%>
</td>
<td valign="top">
<asp:DataGrid id="DataGrid2" runat="server" DataSource='<%# Container.DataItem.Row.GetChildRows("company_user") %>' AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Linkbutton id="cmdDeleteUser" Runat="server" CommandName="DeleteUser" CommandArgument='<%#Container.DataItem("userid")%>' CausesValidation="False">X</asp:Linkbutton>
<%#Container.DataItem("name")%>
<br>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</td>
<td>
<asp:LinkButton ID="addUsers" Runat="server" CommandName="AddUsers" CommandArgument='<%#Container.DataItem("Id")%>'>Add</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</table>
<asp:label ID="lblMessage" Runat="server"></asp:label>
</code>


code behind... Kräver att du har dina avdelningar i en table och personerna i en annan, går det tror du? Här skapar jag i det här exemplet två olika DataTables som jag sen lägger in i ett DataSet, och skapar en relation mellan tabellerna, bara för att få exemplet att funka någorlunda.

<code>
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If Not Page.IsPostBack Then
Dim dt As DataTable = New DataTable("Nurshinghomes")
Dim col1 As New DataColumn("id")
Dim col2 As New DataColumn("name")
dt.Columns.Add(col1)
dt.Columns.Add(col2)
Dim newRow As DataRow

newRow = dt.NewRow()
newRow("id") = 1
newRow("name") = "Molecular Pharmacology"
dt.Rows.Add(newRow)
newRow = dt.NewRow()
newRow("id") = 2
newRow("name") = "Molecular Sciences"
dt.Rows.Add(newRow)

Dim dt2 As DataTable = New DataTable("people")
Dim col11 As New DataColumn("compid")
Dim col21 As New DataColumn("name")
Dim col31 As New DataColumn("userid")
dt2.Columns.Add(col11)
dt2.Columns.Add(col21)
dt2.Columns.Add(col31)

newRow = dt2.NewRow()
newRow("compid") = 1
newRow("name") = "Joachim Feldt"
newRow("userid") = 1
dt2.Rows.Add(newRow)
newRow = dt2.NewRow()
newRow("compid") = 1
newRow("name") = "Kalle Svensson"
newRow("userid") = 2
dt2.Rows.Add(newRow)
newRow = dt2.NewRow()
newRow("compid") = 1
newRow("name") = "Stina Johansson"
newRow("userid") = 3
dt2.Rows.Add(newRow)

newRow = dt2.NewRow()
newRow("compid") = 2
newRow("name") = "Joachim Feldt"
newRow("userid") = 4
dt2.Rows.Add(newRow)
newRow = dt2.NewRow()
newRow("compid") = 2
newRow("name") = "Kalle Svensson"
newRow("userid") = 5
dt2.Rows.Add(newRow)
newRow = dt2.NewRow()
newRow("compid") = 2
newRow("name") = "Stina Johansson"
newRow("userid") = 6
dt2.Rows.Add(newRow)

Dim ds As New DataSet
ds.Tables.Add(dt)
ds.Tables.Add(dt2)
ds.Relations.Add("company_user", ds.Tables(0).Columns("id"), _
ds.Tables(1).Columns("compid"))
DataGrid1.DataSource = ds.Tables(0)
DataGrid1.DataBind()
End If
End Sub

Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
If e.Item.ItemType = ListItemType.AlternatingItem OrElse _
e.Item.ItemType = ListItemType.Item Then
Dim cntrl2 As DataGrid = DirectCast(e.Item.Cells(0).FindControl("DataGrid2"), DataGrid)
AddHandler cntrl2.ItemCommand, AddressOf DataGrid1_ItemCommand
End If
End Sub

Private Sub DataGrid1_ItemCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
Select Case e.CommandName
Case "DeleteUser"
lblMessage.Text = "delete user " & e.CommandArgument
Case "AddUsers"
lblMessage.Text = "add users from list to company " & e.CommandArgument
End Select
End Sub
</code>


Svara

Sv:Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 17:24:07 - Martin Emanuelsson

Insåg att jag hade blandat lite väl mkt Table och Datagrid och sånt så här kommer en ny Datagrid

<code>
<asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<%#Container.DataItem("name")%>
</ItemTemplate>
</asp:templatecolumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:DataGrid id="DataGrid2" runat="server" DataSource='<%# Container.DataItem.Row.GetChildRows("company_user") %>' AutoGenerateColumns="False" ShowHeader="False">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Linkbutton id="cmdDeleteUser" Runat="server" CommandName="DeleteUser" CommandArgument='<%#Container.DataItem("userid")%>' CausesValidation="False">X</asp:Linkbutton>
<%#Container.DataItem("name")%>
<br>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</ItemTemplate>
</asp:templatecolumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:LinkButton ID="addUsers" Runat="server" CommandName="AddUsers" CommandArgument='<%#Container.DataItem("Id")%>'>Add</asp:LinkButton>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</code>

Innebär att du får ändra en funktion Code Behind också:

<code>
Private Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated
If e.Item.ItemType = ListItemType.AlternatingItem OrElse _
e.Item.ItemType = ListItemType.Item Then
Dim cntrl2 As DataGrid = DirectCast(e.Item.Cells(1).FindControl("DataGrid2"), DataGrid)
AddHandler cntrl2.ItemCommand, AddressOf DataGrid1_ItemCommand
End If
End Sub
</code>

Hoppas som sagt det är förståeligt, trots att du inte var så sugen på att grotta ner dig i DataGrids och sånt :-)


Svara

Sv: Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 18:18:27 - Joachim Feldt

Martin,

Stort tack för att lägger ner tid på detta!!

Nu är jag hemma, så jag ska titta på det imorgon på jobbet.

/Jocke


Svara

Sv:Komma åt onClick-eventet från dynamisk button

Postades av 2005-02-02 18:56:27 - Martin Emanuelsson

Inga problem... Inser att jag kanske skrev ner allt lite väl fort så om du vill ha nåt förklarat så är det bara att du hör av dig... Sen går det så klart lösa på andra sätt också men det här var ett exempel iaf...


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 602
27 953
271 705
5 876
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