webForumDet fria alternativet

lägga till onclick på knapp

.NET

6 svar · 259 visningar · startad av andreas_lindh

Medlem sedan jan. 20011 140 inlägg
Frågan#1

Försöker skapa en knapp och lägg till onclick på den

Dim b As Button = New Button()
                b.ID = "btSubmit"
                b.Text ="Lägg till"
                b.Click+=New system.eventhandler(insert)
                lblSubmit.Controls.Add(b)

Men jag får ett felmeddelande

Compiler Error Message: BC32022: 'Public Event Click(sender As Object, e As System.EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.

Source Error:

 

Line 59:                 b.ID = "btSubmit"
Line 60:                 b.Text ="Lägg till"
Line 61:                 b.Click+=New system.eventhandler(insert)
Line 62:                 lblSubmit.Controls.Add(b)
Line 63: 	end sub
 

Source File: h:\inetpub\wwwroot\cup\addspelare.aspx    Line: 61
Medlem sedan okt. 20005 273 inlägg
#2
[red]
Dim b As Button = New Button()
b.ID = "btSubmit"
b.Text ="Lägg till"
AddHandler b.Command, AddressOf insert
lblSubmit.Controls.Add(b)[/red]

Jag tror det är så man gör :OO

Men hur gör man i C#?

mvh icaaq

Medlem sedan jan. 20011 140 inlägg
#3

Testade din kod men får ett nytt felmeddelande

Compiler Error Message: BC30408: Method 'Public Sub insert(obj As Object, e As System.EventArgs)' does not have the same signature as delegate 'Delegate Sub CommandEventHandler(sender As Object, e As System.Web.UI.WebControls.CommandEventArgs)'.

Source Error:

 

Line 59:                 b.ID = "btSubmit"
Line 60:                 b.Text ="Lägg till"
Line 61:                 AddHandler b.command, AddressOf insert
Line 62:                 lblSubmit.Controls.Add(b)
Line 63: 	end sub
 

Source File: h:\inetpub\wwwroot\cup\addspelare.aspx    Line: 61
Medlem sedan okt. 20005 273 inlägg
#4

Byt ut

[red]
Public Sub insert(obj As Object, e As System.EventArgs)
[/red]

mot

[red]
Public Sub insert(sender As Object, e As System.Web.UI.WebControls.CommandEventArgs)
[/red]

Chansar ;)

mvh icaaq

Medlem sedan jan. 20011 140 inlägg
#5

Nu blir det inga felmeddelanden men den kör inte insert heller

Medlem sedan okt. 20005 273 inlägg
#6

Här har du en artikel som tar upp ämnet

http://aspalliance.com/articles/dynamicbuttons.aspx

mvh icaaq

Medlem sedan jan. 20011 140 inlägg
#7

Problemet är att jag inte skapar textboxarna i page_load utan när användaren klickar på en länk

visar lite kod

sub page_load(obj as object, e as eventargs)
		
		dim c_id as integer = 35
		Dim strSQL1 as String= String.Format("select * from deltagande_lag where cup_id={0}", c_id)	
		'response.write(strsql &"<br />")
		dim objcmd as new oledbdataadapter(strsql1, objconn)
		
		dim ds as dataset =new dataset()
		objcmd.fill(ds, "deltagande_lag")
		
		datagrid1.datasource =ds.tables("deltagande_lag"). _
		defaultview
		databind()
		
		label2.text = "Välj i vilket lag du vill skriva in spelare"
	end sub
	
	sub valjlag(obj as object, e as datagridcommandeventargs)
		dim l_id as integer = datagrid1.DataKeys(CInt(e.Item.itemindex))
		Dim strSQL as String= String.Format("select * from deltagande_lag where id={0}", l_id)	
		'response.write(strsql &"<br />")
		dim objcmd1 as new oledbcommand(strsql, objconn)
		dim dr as OleDbdatareader
		objconn.open
		dr =objcmd1.executereader
			dim antalspelare as integer
			dim lag_id as integer
			if dr.read then
				antalspelare= dr("antal_spelare")
				'lag_id= dr("lag_id")
			end if
			Dim numtexts as Integer = antalspelare
			Dim i as Integer
			lblHeader.text ="Namn"
			lblHeader1.text = "Nummer"
			For i = 1 To numtexts
                Dim tbnamn As TextBox = New TextBox()
                tbnamn.ID = "namn" & i
                lblNamn.Controls.Add(tbnamn)
                lblNamn.Controls.Add(new LiteralControl("<br />"))
                Dim tbnummer As TextBox = New TextBox()
                tbnummer.ID = "Nummer" & i
                lblNummer.Controls.Add(tbnummer)
                lblNummer.Controls.Add(new LiteralControl("&nbsp;<br />"))
            Next
            Dim b As Button = New Button()
                b.ID = "btSubmit"
                b.Text ="Lägg till"
                b.CommandName = "insert_spelare"
                AddHandler b.command, AddressOf insert_spelare
                lblSubmit.Controls.Add(b)
	end sub
	
	public Sub insert_spelare(sender As Object, e As CommandEventArgs)
		dim b As LinkButton = CType(Sender, LinkButton)
		dim insert_spelare as String = b.CommandArgument
		lblmessage.text = "test"
	end sub

Och länken för att skapa textboxarna

<asp:datagrid id="datagrid1"
				runat="server" autogeneratecolumns="False"
				borderwidth="0" borderstyle="None"
				cellspacing="4" showfooter="false"
				showheader="false" gridlines="None" onitemcommand="valjlag" datakeyfield="id">
					<columns>
						<asp:boundcolumn datafield="namn" />
						<asp:boundcolumn datafield="id" />
						<asp:buttoncolumn buttontype="LinkButton" text="välj" commandname="valjlag" />
					</columns>
				</asp:datagrid>
323 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
195 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)