Jag har en datagrid där jag skriver ut några namn plus en länk.
När användaren klickar på länken körs den här subben
public antalspelare as integer
public lag_id as integer
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
if dr.read then
antalspelare= dr("antal_spelare")
lag_id= dr("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(" <br />"))
Next
btsubmit.Visible = true
end sub
Då skapas ett antal textboxar. Detta fungerar. Men hur ska jag göra för att få tag på värden i textboxarna.
när användaren tryxker på skicka så körs den här subben
public Sub insert_spelare(sender As Object, e As EventArgs)
dim i as integer
for i = 1 to antalspelare
dim namn as string = request.form("tbnamn"& i)
dim nummer as integer = request.form("tbnummer"& i)
response.write(request.form("tbnamn"& i))
next
lblmessage.text = "Spelarna inlagda"
end sub
Jag har tittat på den här artikeln
http://aspalliance.com/articles/dynamicbuttons.aspx
Men inte kommit på hur jag ska göra
jag hittade den här koden på www.asp.net.
Men jag lyckas inte få det att fungera ihop med min kod
<%@ Page Language="VB" %>
<script runat="server">
Public Const iNumOfButtons = 3 'This is the original number of hardcoded buttons
Sub Page_Load(s As Object, e As EventArgs)
If IsPostBack Then
'Controls are not preserverd for a postback so you have to rebuild them
If ViewState("iNum") <> Nothing Then
Dim i as integer
For i = 1 to ViewState("iNum")
AddTextBox(i)
Next
End If
End If
End Sub
Sub btnAdd_Click(s As Object, e As EventArgs)
ViewState("iNum") +=1
AddTextBox(ViewState("iNum"))
End Sub
Sub AddTextBox(i As Integer)
Dim txtNew As New Textbox()
Dim ltlStart As New LiteralControl("Textbox " & (i+iNumOfButtons) & " ")
Dim ltlEnd As New LiteralControl("<p>")
txtNew.id="txt" & (i+iNumOfButtons)
plhMore.Controls.Add(ltlStart)
plhMore.Controls.Add(txtNew)
plhMore.Controls.Add(ltlEnd)
End Sub
Sub btnFinish_Click (s As Object, e As EventArgs)
'Hardcoded Textboxes
lblRes.Text = "txt1=" & txt1.Text & "<br>"
lblRes.Text &= "txt2=" & txt2.Text & "<br>"
lblRes.Text &= "txt3=" & txt3.Text & "<br>"
'Dynamic textboxes
If ViewState("iNum") <> Nothing Then
Dim i as integer
Dim iExtraBtns as Integer = ViewState("iNum") + iNumOfButtons
For i = (iNumOfButtons+ 1) to iExtraBtns
lblRes.Text &= "txt" & i.Tostring() & "=" & Request.Params("txt" & i.ToString()) & "<br>"
Next
End If
End Sub
</script>
<html>
<head>
<title> New ASP.NET Document </title>
</head>
<body>
<form runat="server" method="">
TextBox 1 <asp:TextBox id="txt1" runat="server" /> <p>
TextBox 2 <asp:TextBox id="txt2" runat="server" /> <p>
TextBox 3 <asp:TextBox id="txt3" runat="server" /> <p>
<asp:PlaceHolder id="plhMore" runat="server" />
<asp:Button id="btnAdd" Text="AddTextBox" onclick="btnAdd_Click" runat="server" /> <asp:Button id="btnFinish" Text="Finish" onclick="btnFinish_Click" runat="server" />
--------------------------------------------------------------------------------
<asp:Label id="lblRes" runat="server"/>
</form>
</body>
</html>
Vet någon hur jag ska göra för att få detta att fungera?