Copiar el dato de un textbox a otro ...

Necesito copiar un dato que esta en un textbox a otro textbox que esta contenido en un detailsview...
[email protected]

1 respuesta

Respuesta
1
Lo que tienes que hacer es hacerle un get al control incluido (textboxincluido), y luego asiganle ese valor al otro textbox. Este codigo te lo escribo de memoria, si tienes alguna duda re pregunta.
textboxorigen.text = ctype(me.detailview.findcontrol("TEXTBOXINCLUIDO"),textbox).text
lo que necesito es asignar el valor del "textbox externo" al "texbox incluido" cabe señalar que los 2 texbox estan en la misma pagina..
Muchas gracias!!
Lo que tienes que hacer es la asignacion contraria entonces. Donde detalview es tu objeto contenedor.
CType(detailview.FindControl("TextboxInterno"),TextBox).text = me.textboxexterno.text
ok gracias, pero no funciona por que no encuentra el textboxinterno, este esta en el evento insert del detailsview, (enlazada) ...lo pase a plantilla y todo... el dato del texbox externo lo lleva a la base al grabar pero no lo muestra en el textbox.... aque se debe esto? como lo soluciono?
muchas graciaspor tu ayuda
El ejemplo era referencial tienes que cambiar los nombres de los objetos mios po los tuyos. Mejor hagamos algo copia y documenta el codigo que tienes para yudatrte mejor.
si, cambie , no me muestra los datos en el texboxinterno, pero si preciono insertar ..los graba bien en la base... que raro.. y si oculto los textbox para q no los vea el usuario no graba nada....
Protected Sub TextBox3_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim txt As TextBox = CType(DetailsView1.FindControl("TextBox1"), TextBox)
txt.Text = TextBox2.Text
Dim txtnive As TextBox = CType(DetailsView1.FindControl("TextBox2"), TextBox)
txtnive.Text = DropDownList1.Text
End Sub
Mandame el codigo completo y sinceramete lo que piensas hacer para ver si me imgaino algo mas optimo.
lo que quiero hacer es que se copie valor de un textbox externo a uno que esta en un detailsview en la parte del insert, osea cuando yo haga clic en nuevo, este me copie el valor del textbox al otro... ahora bien este valor viene de una variable y lo coloque en un textbox externo por qu e no puede hacer con en el que esta dentro  del detailsview.
la variable es de session, lleva el id de un colegio, la cosa es que se graba siempre cuando el usuario agrege un nuevo curso, para que se indentioficque en la base de que colegio es el curso que se grabo...
esa es la idea..
lo que tengo es un detailsview que modifica elimina inserta, esta enlazado, con un gridview que al seleccionar el registro  lo muestra en el detailsviuew...
espero puedas ayudarme....
codigo:
<%@ Page Language="VB" MasterPageFile="~/Miembros/MasterPage.master" AutoEventWireup="false" CodeFile="cursos.aspx.vb" Inherits="Miembros_Configuracion_cursos" title="Untitled Page" %>
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<script language="javascript" type="text/javascript">
// <!CDATA[
function TABLE1_onclick() {
}
// ]]>
</script>
<table style="width: 912px" id="TABLE1" onclick="return TABLE1_onclick()">
<tr>
<td style="width: 3px; height: 18px">
<asp:TextBox ID="TextBox2" runat="server" Width="24px" Visible="False"></asp:TextBox></td>
<td style="width: 1px; height: 18px">
<span style="font-family: Arial; width: 5%;"> Nivel:<br />
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
DataTextField="nivel" DataValueField="nivel">
<asp:ListItem>EDUCACIÓN PARVULARIA</asp:ListItem>
<asp:ListItem>EDUCACIÓN GENERAL BASICA</asp:ListItem>
<asp:ListItem>EDUCACIÓN GENERAL MEDIA</asp:ListItem>
</asp:DropDownList>
  </span></td>
<td style="width: 60%; height: 18px; text-align: left;">
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" CellPadding="4"
DataKeyNames="id" DataSourceID="viewCurso" ForeColor="#333333" GridLines="None"
Height="50px" Style="width: 100%" Width="232px">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<Fields>
<asp:TemplateField HeaderText="id" InsertVisible="False" SortExpression="id">
<EditItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Eval("id") %>' BackColor="Transparent" ForeColor="Transparent"></asp:Label>
</EditItemTemplate>
<ItemTemplate>
<asp:Label ID="Label3" runat="server" Text='<%# Bind("id") %>' ForeColor="White"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="nivel" SortExpression="nivel">
<EditItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("nivel") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("nivel") %>' BackColor="Transparent" BorderColor="Transparent" BorderStyle="None"></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label2" runat="server" Text='<%# Bind("nivel") %>'></asp:Label>
</ItemTemplate>
<ControlStyle BackColor="White" BorderColor="White" ForeColor="Black" />
</asp:TemplateField>
<asp:TemplateField HeaderText="curso" SortExpression="curso">
<EditItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" Text='<%# Bind("curso") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox3" runat="server" OnTextChanged="TextBox3_TextChanged" Text='<%# Bind("curso") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label4" runat="server" Text='<%# Bind("curso") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="idColegio" SortExpression="idColegio">
<EditItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("idColegio") %>'></asp:TextBox>
</EditItemTemplate>
<InsertItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("idColegio") %>'></asp:TextBox>
</InsertItemTemplate>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("idColegio") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:CommandField ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True"
ShowInsertButton="True" />
</Fields>
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:DetailsView>
<asp:SqlDataSource ID="viewCurso" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:MiConexion %>" DeleteCommand="DELETE FROM [Cursos] WHERE [id] = @original_id AND [nivel] = @original_nivel AND [curso] = @original_curso AND [idColegio] = @original_idColegio"
InsertCommand="INSERT INTO [Cursos] ([nivel], [curso], [idColegio]) VALUES (@nivel, @curso, @idColegio)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [Cursos] WHERE (([id] = @id) AND ([idColegio] = @idColegio))"
UpdateCommand="UPDATE [Cursos] SET [nivel] = @nivel, [curso] = @curso, [idColegio] = @idColegio WHERE [id] = @original_id AND [nivel] = @original_nivel AND [curso] = @original_curso AND [idColegio] = @original_idColegio">
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="id" PropertyName="SelectedValue"
Type="Int32" />
<asp:ControlParameter ControlID="TextBox2" Name="idColegio" PropertyName="Text" Type="Int32" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_nivel" Type="String" />
<asp:Parameter Name="original_curso" Type="String" />
<asp:Parameter Name="original_idColegio" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="nivel" Type="String" />
<asp:Parameter Name="curso" Type="String" />
<asp:Parameter Name="idColegio" Type="Int32" />
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_nivel" Type="String" />
<asp:Parameter Name="original_curso" Type="String" />
<asp:Parameter Name="original_idColegio" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="nivel" Type="String" />
<asp:Parameter Name="curso" Type="String" />
<asp:Parameter Name="idColegio" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td style="width: 3px; height: 12px">
</td>
<td style="height: 12px; width: 100%;" colspan="2">
<hr />
</td>
</tr>
<tr>
<td style="width: 3px; height: 16px;">
</td>
<td style="height: 16px;" colspan="2">
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
AutoGenerateColumns="False" CellPadding="4" DataKeyNames="id" DataSourceID="detalleCurso"
ForeColor="#333333" GridLines="None" Style="vertical-align: middle; width: 100%;
text-align: left">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
 <asp:ImageButton ID="ImageButton1" runat="server" CausesValidation="False"
CommandName="Select" ImageUrl="~/Miembros/Imagenes/fl_selec.jpg" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" ReadOnly="True"
SortExpression="id" Visible="False" />
<asp:BoundField DataField="nivel" HeaderText="nivel" SortExpression="nivel" />
<asp:BoundField DataField="curso" HeaderText="curso" SortExpression="curso" />
<asp:BoundField DataField="idColegio" HeaderText="idColegio" SortExpression="idColegio"
Visible="False" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:GridView>
<asp:SqlDataSource ID="detalleCurso" runat="server" ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:MiConexion %>" DeleteCommand="DELETE FROM [Cursos] WHERE [id] = @original_id AND [nivel] = @original_nivel AND [curso] = @original_curso AND [idColegio] = @original_idColegio"
InsertCommand="INSERT INTO [Cursos] ([nivel], [curso], [idColegio]) VALUES (@nivel, @curso, @idColegio)"
OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT * FROM [Cursos] WHERE (([nivel] = @nivel) AND ([idColegio] = @idColegio)) ORDER BY [nivel], [curso]"
UpdateCommand="UPDATE [Cursos] SET [nivel] = @nivel, [curso] = @curso, [idColegio] = @idColegio WHERE [id] = @original_id AND [nivel] = @original_nivel AND [curso] = @original_curso AND [idColegio] = @original_idColegio">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownList1" Name="nivel" PropertyName="SelectedValue"
Type="String" />
<asp:ControlParameter ControlID="TextBox2" Name="idColegio" PropertyName="Text" Type="Int32" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_nivel" Type="String" />
<asp:Parameter Name="original_curso" Type="String" />
<asp:Parameter Name="original_idColegio" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="nivel" Type="String" />
<asp:Parameter Name="curso" Type="String" />
<asp:Parameter Name="idColegio" Type="Int32" />
<asp:Parameter Name="original_id" Type="Int32" />
<asp:Parameter Name="original_nivel" Type="String" />
<asp:Parameter Name="original_curso" Type="String" />
<asp:Parameter Name="original_idColegio" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="nivel" Type="String" />
<asp:Parameter Name="curso" Type="String" />
<asp:Parameter Name="idColegio" Type="Int32" />
</InsertParameters>
</asp:SqlDataSource>
</td>
</tr>
<tr>
<td style="width: 3px">
</td>
<td colspan="2">
 </td>
</tr>
</table>
</asp:Content>
Lo que tienes que hacer es:
Editar la plantilla del DetailView.
Seleccionar el sitio donde tienes los botones.
Activar el onclick del boton insertar.
En el codefile dentro del evento para el onclick colocar las lineas de asginacion que te anexo abajo.
Sobre el textbox externo no hace falta que lo utilices, para guardar esa variable que supongo utilizas en toda la aplicacion, agrega una clase globalasax. (Clase de aplicacion global). Alli en el session_start crea una varible de applicacion, si es por colegio la puedes dejar en session. Pero el sitio globalasx es el idoneo para eso.
Application.Add("va", New String("algo"))
Protected Sub BotonPandora_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
CType(Me.DetailsView1.FindControl("TextBoxInterno"), TextBox).Text = Application.Get("va").ToString
End Sub
gracias! lo probare y te cuento
no me resulta...:( no he querido molestarte para hacerlo pero no encuentro lo del onclic..
como puedo Activar el onclick del boton insertar, disculpa mi ignorancia...
Bueno tranquilo para eso estamos. Edita la plantilla del detailview ( la zona donde esta el boton insertar). Luego cuando este en edicion dale doble click encima del boton insertar. Caeras en el codebase de la pagina alli coloca el codio que te mande..
No te preocupes por volver a preguntar. Yo me nutro tambien de las preguntass.
ok muchas gracias.. he segido intentando, los datos los graba pero no los muestra en el textbox... lo que confunde al usuario que llenara este textbox que esta en blanco, y si los oculto me arroga un error..
como hago para que los muestre los datos ? .puse el codigo que me enviaste el el boton insert pero no lo muestra si lo graba en el boton nuevo, da error..de referencia al parecer por el que el objeto no esta creado, aun en esa instancia ..(el texbox interno)....
se complico la cosa parece..jaja
gracias!
Lq ue te sucede es que la instancia no esta creada aun. Primero quitale el evento que tiene en la tabla. Luego coloca el postback en el load. Cuando lo ejecutes ve bien donde e da el error y me avisas. Mandame el codigo de nuevo.
por favor, disculpa pero puedes ser mas claro...  donde encuentro el postback ...
mira otra ayuda podria ser..
tengo el validador de RUN y me funciona bien, pero el problema es lo mismo no me aparcen los eventos como por el ejemplo el lostfocus... o otro.. ya que me graba los datos iguial en la base aun que el run este incorrecto... entonces debo ponerlo en un evento del textbox para que lo revise antes de grabar... es la misma duda pero en otro ejemplo...
gracias!!!
sigo intentado.. y nada, te cuento que quiero hacerlo todo manual sin enlazar las tablas..osea hacer los textbox, los botones, etc.. yo no habia programado en web
tengo esto .. peor no resulta :
MiConexion.ConnectionString = ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\SQLEXPRESS;AttachDbFilename=C:\WebSite2\App_Data\ASPNETDB.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True")
Comm.CommandText = "insert into Postulacion (run) values ('" + TextBox2.Text + "')"
MiConexion.Open()
Comm.ExecuteNonQuery()
MiConexion.Close()
quiero grabar en el campo run lo ingresado en el textbox2 que es el run ingresado por el usuario.. como hago eso...
me sale este error al intentar abri la conexion
El código de usuario no controló System.Data.OleDb.OleDbException
  ErrorCode=-2147217887
  Message="La operación de múltiples pasos de OLE DB generó errores. Compruebe los valores de estado de OLE DB si es posible. No se realizó ningún trabajo."
  Source="Microsoft OLE DB Service Components"

si logro hacer esto me voy por un tubo... ayudame porfa o mandame algun ejemplo para grabar un dato en base sql server.. gracias  mil gracias
Te respondo por orden primero lo que habiamos hecho antes.
Global asax.
<%
@ Application Language="VB" %>
<
script runat="server">
Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
' C¢digo que se ejecuta al iniciarse la aplicaci¢n
Application.Add(
"va", New String("algo"))
'Variable que posee el Id del colegio.
End Sub
Sub Application_End(ByVal sender As Object, ByVal e As EventArgs)
' C¢digo que se ejecuta durante el cierre de aplicaciones
End Sub
Sub Application_Error(ByVal sender As Object, ByVal e As EventArgs)
' C¢digo que se ejecuta al producirse un error no controlado
End Sub
Sub Session_Start(ByVal sender As Object, ByVal e As EventArgs)
' C¢digo que se ejecuta cuando se inicia una nueva sesi¢n
End Sub
Sub Session_End(ByVal sender As Object, ByVal e As EventArgs)
' C¢digo que se ejecuta cuando finaliza una sesi¢n.
' Nota: El evento Session_End se desencadena s¢lo con el modo sessionstate
' se establece como InProc en el archivo Web.config. Si el modo de sesi¢n se establece como StateServer
' o SQLServer, el evento no se genera.
End Sub
</
script>
En la clase donde tiene el control y el boton de insertar.
' La variable va es la que me dijistes que contenia el IdColegio,
Protected Sub BotonPandora_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs)
If Application.Get("va") Is Nothing Then
CType(Me.DetailsView1.FindControl("TextBoxInterno"), TextBox).Text = "ID COLEGIO NO ENCONTRADO"
Else
CType(Me.DetailsView1.FindControl("TextBoxInterno"), TextBox).Text = Application.Get("va").ToString
End If
End Sub
Sobre el sql te anexo esto.
Imports
System. Data. SqlClient
Imports
System. Data. SqlTypes
Partial
Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim str As String
str =
"Data Source=P5630;Initial Catalog=Northwind;Persist Security Info=True;User ID=sa;Password=sa"
' para evitar problemas con el string de conexion te recomiendo que agregues un GridView y lo conectes al origen de datos que desees
' Cuando abra el wizard copia la cadena pre establecida que realiza el wizard, asi nunca tendras problemas.
' De todas maneras este link te servira http://www.connectionstrings.com/
Dim connex As New SqlConnection
connex.ConnectionString = str
Dim ds As New Data.DataSet
connex.Open()
Dim da As New SqlDataAdapter
da.SelectCommand =
New SqlCommand
da.SelectCommand.CommandText =
"Select * from territories"
da.SelectCommand.Connection = connex
da.Fill(ds)
Me.GridView1.DataSource = ds
Me.GridView1.DataBind()
connex.Close()
End Sub
End
Class

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas