Usuário com melhor resposta
ajuda com asp em asp.net

Pergunta
-
pessoal, bom dia!
tenho um código em asp que cria uns textbox de acordo com um valor informado em tela pelo usuário.. isso eu já consegui fazer dessa forma:
<% If txtNumMaquinas.Text <> "NÚMERO DE MÁQUINA(S):" Then For i = 1 To Convert.ToInt32(txtNumMaquinas.Text) %> Máquina <% = i %>*<br> <textarea name="CodDesinstala<% = i %>" rows="3" id="CodDesinstala" style="width:450px;"></textarea> <% Next End If %>
só que quando for fazer minha alteração no banco de dados, vou tratar isso no codebehind (vb.net) como que vou fazer pra pegar os valores que vão está no textbox?
Respostas
-
Você pode procurar o componente pelo nome na página. Você não especificou muito bem dentro do que eles estão, mas vou dar um exemplo genérico:
for(int i = 0; i < numTxtAreas; i++) { HtmlTextArea txtArea = controlePai.FindControl("CodDesistala" + i); var valor = txtArea .Value; /*Salvar*/ }
ControlePai seria o componente em que seus controles estão, podendo ser um Panel, etc. Por exemplo, se eles estiverem dentro do form, você usaria Form.FindControl.
Ou
foreach(Control control in controlePai.Controls) { if(control is HtmlTextArea) { var valor = ((HtmlTextArea )txtArea).Value; /*Lógica para Salvar aqui*/ } }
Você deve adicionar o namespace System.Web.UI.HtmlControls a sua classe.
- Editado Filipe Augusto Lima de Souza quarta-feira, 14 de agosto de 2013 19:56
- Marcado como Resposta kngipa terça-feira, 20 de agosto de 2013 20:34
-
coloquei um text box normal no lugar do textarea
<% If txtNumMaquinas.Text <> "NÚMERO DE MÁQUINA(S):" Then For i = 1 To Convert.ToInt32(txtNumMaquinas.Text) %> Máquina <% = i %>*<br /> <%--<textarea name="CodDesinstala<% = i %>" id="CodDesinstala<% = i %>" cols="0" rows="0" style="width:430px;"></textarea>--%> <asp:TextBox ID="txtNumMaq" runat="server" style="width:430px;"></asp:TextBox> <% Next End If %>
ele gera todos os textbox com o mesmo nome, logo nessa linha
Dim txtCodDesin As TextBox = divDadosSim.FindControl("txtNumMaq") strCodDesinstalacao = txtCodDesin.Text
ele pega todos os valores dos texbox separados por virgula.. dai fiz meus tratamentos...
- Marcado como Resposta kngipa terça-feira, 20 de agosto de 2013 20:34
Todas as Respostas
-
-
-
Você pode procurar o componente pelo nome na página. Você não especificou muito bem dentro do que eles estão, mas vou dar um exemplo genérico:
for(int i = 0; i < numTxtAreas; i++) { HtmlTextArea txtArea = controlePai.FindControl("CodDesistala" + i); var valor = txtArea .Value; /*Salvar*/ }
ControlePai seria o componente em que seus controles estão, podendo ser um Panel, etc. Por exemplo, se eles estiverem dentro do form, você usaria Form.FindControl.
Ou
foreach(Control control in controlePai.Controls) { if(control is HtmlTextArea) { var valor = ((HtmlTextArea )txtArea).Value; /*Lógica para Salvar aqui*/ } }
Você deve adicionar o namespace System.Web.UI.HtmlControls a sua classe.
- Editado Filipe Augusto Lima de Souza quarta-feira, 14 de agosto de 2013 19:56
- Marcado como Resposta kngipa terça-feira, 20 de agosto de 2013 20:34
-
eu não estou conseguindo pegar o valor..
vejam como está..
Dim txtCodDesin As HtmlTextArea = divDadosSim.FindControl("CodDesinstala" & (intCont + 1)) strCodDesinstalacao = strCodDesinstalacao & txtCodDesin.Value & "<br /><br />"
quando vou ver o que veio para o txtCodDesin ele está igual a "Nothing"
-
-
coloquei um text box normal no lugar do textarea
<% If txtNumMaquinas.Text <> "NÚMERO DE MÁQUINA(S):" Then For i = 1 To Convert.ToInt32(txtNumMaquinas.Text) %> Máquina <% = i %>*<br /> <%--<textarea name="CodDesinstala<% = i %>" id="CodDesinstala<% = i %>" cols="0" rows="0" style="width:430px;"></textarea>--%> <asp:TextBox ID="txtNumMaq" runat="server" style="width:430px;"></asp:TextBox> <% Next End If %>
ele gera todos os textbox com o mesmo nome, logo nessa linha
Dim txtCodDesin As TextBox = divDadosSim.FindControl("txtNumMaq") strCodDesinstalacao = txtCodDesin.Text
ele pega todos os valores dos texbox separados por virgula.. dai fiz meus tratamentos...
- Marcado como Resposta kngipa terça-feira, 20 de agosto de 2013 20:34