el tab se resetea

Muy buenas a todos, llegue aqui nuevamente con una consulta, en este caso referente a Bootstrap y sus Tabs.

Me veo en la necesidad de tener Tabs, que al recargar el sitio web, la pestaña que esta elegida en ese momento, sea “recordada” y no vuelva a la primera pestaña, o a la pestaña por defecto. Por ejemplo, si tengo 3 pestañas, y actualmente tengo activa la pestaña ‘ 2 ‘. Al actualizar esa pagina, el tab activo tendria que ser el numero ‘ 2 ‘.
Necesito esto, puesto que la ultima pestaña de las 3 que estoy utilizando, posee un formulario en PHP que al enviarse genera un mensaje, el mismo lo devuelve en un MODAL (de bootstrap 3 tambien), para indicar si fue con exito, o si fracaso.

O no estoy buscando bien (lo mas probable) o no estoy encontrando la manera. Si por favor alguien conoce la manera en la cual pueda solucionarlo estare agradecido.

PD: El codigo del Tab no lo coloco porque es un tab basico, en caso de que lo requieran puedo colocarlo.

  #2 (permalink)
Antiguo 23/12/2014, 03:47
Fecha de Ingreso: enero-2008
Ubicación: Málaga – España
Mensajes: 329
Antigüedad: 8 años, 7 meses
Puntos: 13
Respuesta: Tabs con Bootstrap3, se resetea al recargar la pagina.

Bueno, pues yo lo hago así, igual hay otra forma pero no di con ella.

Yo trabajo con ASP, pero la idea es lo que cuenta y se puede adaptar a cualquier lenguaje.

1º con cada link del TAB en cuestion paso por QueryString el id del tab para luego recogerlo.
EJ.

2º cuando cargo la pagina recojo el tab si existe y lo meto en una variable
EJ.

Código ASP:

Ver original
  1. <% TAB = request(“tab”) %>

3º Al final de la pagina tengo el script para que se visualize el tab en cuestion:

Código Javascript:

Ver original
  1. <script>
  2.     $(function() {
  3.         $(‘#myTab a[href=”#<%=TAB%>”]’).tab(‘show’);
  4.     });
  5.     $(‘.modal’).on(‘hidden.bs.modal’, function (e) {
  6.             location.reload();
  7.     })
  8. </script>

tabs de bootstrap conversacion


Registrado: 13 Ene 2016
Mensajes: 8

Mensaje Publicado: Miércoles 13 Ene 2016 16:34

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando

Buenas,
Resulta que he creado un “TAB” del bootstrap.
(Son como unas lenguetas, donde cada una de ellas tiene una sección diferente)

Me gustaría hacer un botón, para que se mostrara un TAB determinado (apartado) al pulsarlo.

1. Es posible mediante html o javascript?
2. Alguien me podría poner un ejemplo?
3. Gracias.

Ejemplo.
1. Le doy al “boton1”, y me muestra el “tab1”
2. Le doy al “boton2”, y me muestra el “tab2″

Un amigo me dió unas indicaciones, pero no me acaban de funcionar, cuando doy al botón, no se me abre el tab…
Alguien podría ayudarme?
Muchas gracias.

Hago un copy del código que tengo…

Código HTML:
Ver original
<ul id=”tab” class=”nav nav-tabs” role=”tablist”>
<li>
<a id=”tab1-tab” aria-controls=”tab1″ data-toggle=”tab” role=”tab” href=”#tab1″ aria-expanded=”true”>tab1</a>
</li>
<li>
<a id=”tab2-tab” aria-controls=”tab2″ data-toggle=”tab” role=”tab” href=”#tab2″ aria-expanded=”true”>tab2</a>
</li>
<li>
<a id=”tab3-tab” aria-controls=”tab3″ data-toggle=”tab” role=”tab” href=”#tab3″ aria-expanded=”true”>tab3</a>
</li>
</ul>

Contenido tab1
Contenido tab2
Contenido tab3

</div>

Código Javascript:
Ver original

var $tabButtons = $(‘.buttons-tab-nav > a’); // Aquí tenemos almacenados los tres botones a
var $tabsLinks = $(“#tab li a”); // Obtenemos todos los tag a que lanzan la apertura de un panel tab
var $tabsPanels = $(“#tabContent > div”); // Estos son los paneles que contienen el contenido que están relacionados con cada tab, podemos relacionarlos nosotros mediante el atributo de a aria-controls

// Capturamos el evento click de todos los a(botones)
$tabButtons.on (‘click’, function (event) {
event.preventDefault();

// Antes de hacer nada, eliminamos la clase active de cualquier elemento a o div que esté dentro de $tabsLinks o $tabsPanels
// es algo drástico y se puede optimizar almacenando en una variable el ultimo elemento activo
// por rapidez lo hago así
$tabsLinks.removeClass(“active”);
$tabsPanels.removeClass(“active”);

// Obtenemos el atributo tab-to-open del elemento a que ha sido pulsado.
// Ya tenemos el div que vamos a mostra, en este caso puede ser: tab1, tab2 o tab3
var pressedElement = $(this).attr (‘tab-to-open’);

// Entonces, ahora solo buscamos el div que tiene ese id y le añadimos la clase active
// y luego, se la añadimos también al elemento a que ha sido pulsado.
// El añadirle ahora la clase al elemento a en vez de hacerlo antes es por hacerlo mas legible el código
$(“#” + pressedElement).addClass (“active”); // Activamos pestaña
$(“#” + pressedElement + “-tab”).addClass (“active”); // Activamos panel de pestaña
});

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo

Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Jueves 14 Ene 2016 02:21

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando
Código:
$(‘#tab3’).tab(‘show’);

O mediante propiedades “data” pero no te “ilumina” la pestaña activa:

Código:
<a data-toggle=”tab” href=”#tab3″>Mostrar TAB3</a>

++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>–.<–.>—–.–.+++++++.———.-.>>++.<<-.+++++.——-.<-.>>++.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
raulgs82

Registrado: 13 Ene 2016
Mensajes: 8

Mensaje Publicado: Jueves 14 Ene 2016 10:49

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando

Buenas, soy muy novato, podrías echarme un cable?

A ver, este sería por ejemplo mi tab.

Código:

I’m in Section 1.

Howdy, I’m in Section 2.

</div>
</div>
</div>
</div>
</div>

y este sería el botón, que me gustaría que fuera al tab “panel-566127”, por poner un ejemplo.

Código:
<a href=”AQUI LA URL”><button><font color=”#cc0000″><strong>AQUI EL TEXTO</strong></font></button>

LA PETICIÓN ES:
– Como debería configurar este botón, para que cuando pulse sobre él, me dirija y me abra el TAB?
– He de incluir alguna secuencia addicional?

Muchas gracias.[/code]

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo

Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Viernes 15 Ene 2016 05:07

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando

Si lo que quieres es redirigir a otra página y en esa página abrir una pestaña en concreto hasta donde yo se tendrías que contemplarlo en la página hacia donde rediriges… pasando algún argumento por URL o mirando (si el usuario no lo tiene bloqueado) de que página viene…

Si lo que quieres es que dentro de la misma página tener un boton que abra esa pestaña en concreto… harías algo como:

usar <button> es redundante en este caso… y bueno en general si usas bootstrap tienes las clases css “btn btn-x”…

Código:
<a data-toggle=”tab” href=”#panel-566127″ class=”btn btn-danger”>AQUI EL TEXTO</a>

O algo como esto…

Código:
<a data-open-tab=”#panel-566127″ href=”#” class=”btn btn-danger”>AQUI EL TEXTO</a>

$(document).on(‘click’, ‘a’, function(ev){
var $this = $(this);
if (‘open-tab’ in $this.data())
{
var tabid = $this.data(‘open-tab’);
$(tabid).tab(‘show’);
ev.preventDefault();
}
});


++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>–.<–.>—–.–.+++++++.———.-.>>++.<<-.+++++.——-.<-.>>++.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
raulgs82

Registrado: 13 Ene 2016
Mensajes: 8

Mensaje Publicado: Viernes 15 Ene 2016 11:03

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando
unsigned char* escribió:
Si lo que quieres es redirigir a otra página y en esa página abrir una pestaña en concreto hasta donde yo se tendrías que contemplarlo en la página hacia donde rediriges… pasando algún argumento por URL o mirando (si el usuario no lo tiene bloqueado) de que página viene…

Si lo que quieres es que dentro de la misma página tener un boton que abra esa pestaña en concreto… harías algo como:

usar <button> es redundante en este caso… y bueno en general si usas bootstrap tienes las clases css “btn btn-x”…

Código:
<a data-toggle=”tab” href=”#panel-566127″ class=”btn btn-danger”>AQUI EL TEXTO</a>

O algo como esto…

Código:
<a data-open-tab=”#panel-566127″ href=”#” class=”btn btn-danger”>AQUI EL TEXTO</a>

$(document).on(‘click’, ‘a’, function(ev){
var $this = $(this);
if (‘open-tab’ in $this.data())
{
var tabid = $this.data(‘open-tab’);
$(tabid).tab(‘show’);
ev.preventDefault();
}
});

Buenas,
He probado la primera opción que me has dado:

Código:
<a data-toggle=”tab” href=”#panel-566127″ class=”btn btn-danger”>AQUI EL TEXTO</a>

Es justo lo que necesito, solo tengo un pequeño problema.
” La Pestaña o TAB de destino, NO SE ILUMINA”
Es decir, sale el texto que tengo en el TAB de destino, pero no se ilumina el título de la pestaña.

Por lo que respecta al código Javascript, no me funciona.
Me sale el botón, le clico, y no hace nada.
He instalado el plugin de javascript para wordpress, y nada, no consigo que haga ninguna acción.

Muchas gracias por tu tiempo.
Saludos.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
unsigned char*
Usuario Activo

Registrado: 03 Abr 2012
Mensajes: 599
Ubicación: Aqui

Mensaje Publicado: Sábado 16 Ene 2016 03:34

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando

Si, la primera opción no “ilumina” la pestaña seleccionada… la segunda opción igual me equivoque… no probé código xDD

Pero bueno ahora si y… tienes dos opciones:

1. No tienes jQuery cargado al momento de llamar al script:

Código:
<a onClick=”abrirTab(‘#tabs-155176′,’#panel-566127’)” href=”#” class=”btn btn-danger”>AQUI EL TEXTO</a>

function abrirTab(tabid, tabref)
{
$(tabid+” a[href='”+tabref+”‘]”).tab(‘show’);
}

2. Puedes poner el script después de que cargue jQuery:

Código:
<a data-open-tab=”#tabs-155176″ href=”#panel-566127″ class=”btn btn-danger”>AQUI EL TEXTO</a>

$(document).on(‘click’, ‘a’, function(ev){
var $this = $(this);
if (‘openTab’ in $this.data() && $this.attr(‘href’))
{
var tabid = $this.data(‘openTab’);
var tabref = $this.attr(‘href’);
$(tabid+” a[href='”+tabref+”‘]”).tab(‘show’);
ev.preventDefault();
}
});

** Si puedes usa la segunda opción Guiño

#tabs-15517 –> es el id que hace referencia al contenedor de los enlaces de las pestañas
#panel-566127 –> es el id de la pestaña en concreto
$(tabid+” a[href='”+tabref+”‘]”) se traduce en $(‘#tabs-15517 a[href=’#panel-566127’]”) que viene a ser un objeto jQuery que hace referencia al enlace que muestra la pestaña que se quiere mostrar.


++++++++++[>++++++++>++++++++>++++>+++<<<<-]>+++++.>–.<–.>—–.–.+++++++.———.-.>>++.<<-.+++++.——-.<-.>>++.

Volver arriba
Ver perfil del usuario Enviar mensaje privado
raulgs82

Registrado: 13 Ene 2016
Mensajes: 8

Mensaje Publicado: Miércoles 20 Ene 2016 10:43

Título del mensaje: Bootstrap TABS Boton->abrir TAB

Responder citando

Buenas,
Con la primera forma me ha salido.
Con la segunda no!
Qué debería hacer para que la segunda forma me funcionara?

Por cierto, para no tener que escribir siempre el script, me recomiendas que lo haga en una hoja a parte que se llama scripts.php, y de esta forma al inicio de cada página cargue todos los scripts de golpe? con un include.

Gracias!!!

incluir archivos en asp.net

Pasos para crear el ejemplo

  1. Abra Microsoft Visual Studio .NET.
  2. En el menú Archivo, seleccione Nuevo y haga clic en Proyecto.
  3. En el cuadro de diálogo Nuevo proyecto, haga clic en Proyectos de Visual Basic en Tipos de proyecto. En Plantillas, haga clic en Aplicación Web ASP.NET.
  4. Cambie al editor de código HTML para la página .aspx que se crea de manera predeterminada. Reemplace el código existente por el código siguiente:
    
       <%@ Page Language="vb" AutoEventWireup="false"%>
       <html>
       <body>
            <%		   
              Response.WriteFile ("Yourfile.inc")
            %>
       </body>
       </html>
    					
  5. Reemplace “Yourfile.inc” en la instrucción Response.WriteFile con el nombre de un archivo “include” que contenga alguna secuencia de comandos HTML o de cliente.
  6. Agregue “Yourfile.inc” al proyecto.
  7. Vaya al archivo .aspx. Observe que el contenido del archivo se escribe en el explorador.

Solución de problemas

  • El código de servidor del archivo incluido dinámicamente se muestra en el explorador del cliente.

    El archivo incluido dinámicamente puede contener código de cliente, incluido HTML y JavaScript. Si dicho archivo contiene código de servidor, éste se envía al explorador del cliente como texto sin formato y se muestra al ver el código fuente de la página que aparece en el explorador. Tenga en cuenta que ASP.NET no procesa secuencias de comandos de servidor en el archivo incluido dinámicamente. Esto se debe a que todo el código ASP.NET ya se ejecutó antes de que incluyera el archivo; por tanto, el archivo no vuelve a leer nada para un nuevo proceso de servidor.

  • Si utiliza las instrucciones Response.Write o Response.WriteFile en un módulo de código subyacente, estas instrucciones escriben la información antes de las etiquetas HTML. Se produce este mismo comportamiento si usa etiquetas <SCRIPT> en línea con el atributo RUNAT=”Server”.

    Puesto que los módulos de código subyacente se compilan primero, todos los resultados generados por Response.Write, Response.WriteFile o las etiquetas <SCRIPT> de servidor aparecen antes de las etiquetas HTML cuando el resultado HTML se envía al explorador. Este problema no se produce cuando se usan instrucciones Response.Write en etiquetas clásicas de estilo ASP.

Referencias

Para obtener información adicional al respecto, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:

304427 Cómo realizar operaciones básicas de E/S de archivos en Visual Basic .NET
304430 Cómo realizar operaciones básicas de E/S de archivos en Visual C# .NET
Propiedades

Id. de artículo: 306575 – Última revisión: 07/24/2006 16:11:02 – Revisión: 3.5

La información de este artículo se refiere a:

Microsoft ASP.NET 1.0, Microsoft Visual Basic .NET 2002 Standard Edition, Microsoft ASP.NET 1.1, Microsoft Visual Basic .NET 2003 Standard Edition
Palabras clave:

  • kbhowtomaster KB306575

Asp .net con Bootstrap 3.0.0 paso a paso

En esta publicación estoy considerando la creación de un formulario web vacío, aplicando el Framework Twiter Bootstrap 3.0.0 en ASP.NET paso a paso considerando los links de descarga de los archivos necesarios para el funcionamiento de nuestra nueva aplicación,
Los pasos están descritos de forma simple para que usted construya su aplicación.
Manos a la obra :
Herramientas y Framework utilizados:
Pasos para usar 3.0.0 Bootstrap con ASP.NET Web Forms:
  1. Inicie Visual Studio (Estoy usando Visual Studio Express 2012 para Web).
  2. Crear una nueva aplicación Web ASP.NET vacía.
Bootstrap-ASP.NET-StepByStep-01
      3.En el nuevo proyecto, cree una carpeta Scripts para almacenar la escritura de Java y archivos de jQuery.
     4. Cree otro contenido con una  carpeta para almacenar los archivos CSS y los archivos de imagen. Luego de crear las nuevas carpetas de la solución deberia aparecer de esta forma la estructura de archivos.
Bootstrap-ASP.NET-StepByStep-02
     5. Bootstrap necesita jQuery asi que debemos descargar la última versión de jQuery desde la siguiente página http: //jquery.com/download/. Debemos descargar el archivo comprimido y la producción de jQuery 2.0.3. o superior.
     6. Guarde el archivo Jquery descargado en la carpeta Scripts en el proyecto. Luego de incluir el archivo jquery-2.0.3.min.js al proyecto desde el explorador de soluciones.
Bootstrap-ASP.NET-StepByStep-03
   7. Descargue la versión más reciente.
   8. Extraiga el archivo zip descargado (bs-v3.0.0-rc1-dist.zip). He descargado la versión 3.0.0 RC1. Habrá 2 carpetas, una con archivos js y otro con archivos CSS.

bootstrap-ASP.NET-StepByStep-04
bootstrap-ASP.NET-StepByStep-05

9.Coloque los 2 archivos de arranque js en la carpeta Scripts e incluirlos en el proyecto desde el explorador de soluciones.

Bootstrap-ASP.NET-StepByStep-06
10.Copia la carpeta Css desde el archivo zip de arranque y colocarlo dentro de la carpeta de contenido del proyecto. Entonces incluir la carpeta css y su contenido al proyecto.
11.Después de incluir los archivos, el explorador de soluciones se parece a esto.

Bootstrap-ASP.NET-StepByStep-07
12. Debemos descargar la plantilla de arranque de arranque de examples.getbootstrap.com.
13. Crear una página principal para el proyecto y cambiar el nombre si es necesario. Para crear una página maestra, haga clic en el proyecto en el explorador de soluciones, seleccione Agregar, seleccione Nuevo elemento … y crear nueva página maestra.

Bootstrap-ASP.NET-6
14. Edite la nueva página maestra y vincular el Css de arranque en el interior del bloque de título.
Bootstrap-ASP.NET-StepByStep-08

   15 Retire la etiqueta <form> configurar desde la página principal.
16.Aplicar las referencias de nuestro archivo Boorstrap.css
   17.Agregar las clases a los divs que están encerrados en rojo.
18.Agregar las referencias de script al final
Bueno como en esta imagen:

Bootstrap-ASP.NET-StepByStep-09a

20 Crear una página por defecto, para la creación de la página Default.aspx, haciendo clic derecho en el proyecto, seleccione Agregar, seleccione Nuevo elemento … y seleccione Formulario Web con Master Page. En la pantalla de selección de páginas principales, seleccione la nueva página maestra que ha creado anteriormente.
21. Editar la página Default.aspx y escribir algo dentro de la sección de contenido ContentPlaceHolder1.
Bootstrap-ASP.NET-StepByStep-10
     22.Ahora la solución está lista para ser construir.
     23.Genere la solución de formularios Web Forms ASP.NET, ya sea pulsando la tecla F5 o haciendo clic en el build flecha verde en la barra de herramientas de Visual Studio. En la construcción satisfactoria, la página web se pondrá en marcha en el navegador similar al que se muestra a continuación.
Bootstrap-ASP.NET-StepByStep-11
 24.Este diseño de interfaz de usuario de arranque es sensible en la naturaleza. Esto es, al abrir esta interfaz de usuario en pantallas pequeñas, como los teléfonos inteligentes o tabletas, el menú y el contenido reordenarse para ajustarse a la pantalla. Esto se puede comprobar por la modificación del tamaño de la pantalla del navegador en el PC.
Bootstrap-ASP.NET-StepByStep-12

ver mas:

Codigo 100% funcional en asp.net VS.net 2015

<input type=”datetime-local” name=”localdatetime” />

webconfig de proyecto vacio

<?xml version=”1.0″ encoding=”utf-8″?>
<!–
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
–>
<configuration>
<system.web>
<compilation debug=”true” strict=”false” explicit=”true” targetFramework=”4.5″/>
<httpRuntime targetFramework=”4.5″/>
<httpModules>
<add name=”ApplicationInsightsWebTracking” type=”Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web”/>
</httpModules>
</system.web>
<system.codedom>
<compilers>
<compiler language=”c#;cs;csharp” extension=”.cs”
type=”Microsoft.CodeDom.Providers.DotNetCompilerPlatform.CSharpCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″
warningLevel=”4″ compilerOptions=”/langversion:6 /nowarn:1659;1699;1701″/>
<compiler language=”vb;vbs;visualbasic;vbscript” extension=”.vb”
type=”Microsoft.CodeDom.Providers.DotNetCompilerPlatform.VBCodeProvider, Microsoft.CodeDom.Providers.DotNetCompilerPlatform, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35″
warningLevel=”4″ compilerOptions=”/langversion:14 /nowarn:41008 /define:_MYTYPE=\&quot;Web\&quot; /optionInfer+”/>
</compilers>
</system.codedom>
<system.webServer>
<validation validateIntegratedModeConfiguration=”false”/>
<modules>
<remove name=”ApplicationInsightsWebTracking”/>
<add name=”ApplicationInsightsWebTracking” type=”Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web”
preCondition=”managedHandler”/>
</modules>
</system.webServer>
</configuration>

 

Cómo: Pasar valores entre páginas Web ASP.NET

Visual Studio 2010

Actualización: noviembre 2007

Si en la aplicación se redirige de una página Web ASP.NET a otra, a menudo deseará pasar información de la página de origen a la de destino. Por ejemplo, imagine que tiene una página cuyos usuarios pueden seleccionar los elementos que desean adquirir. Cuando los usuarios envían la página, desea llamar a otra página que procese la información introducida por el usuario.

La información se puede pasar entre páginas de varias formas, algunas de las cuales dependen de cómo se lleve a cabo la redirección. Entre las opciones posibles se encuentran las siguientes:

  • Utilice una cadena de consulta que anexe la información a la dirección URL de la página de destino. Puede emplear este método cuando utilice un control HyperLink para diseñar la exploración de una página o cuando realice la redirección mediante programación a otra página mediante el método Redirect.El traspaso de valores en cadenas de consulta funciona aunque las páginas no se encuentren en la misma aplicación Web; también funciona si desea pasar la información a una página que no es una página Web ASP.NET. Si la página de destino es una página Web ASP.NET, puede leer el valor de la cadena de consulta a partir de la propiedad QueryString del objeto HttpRequest.
    6c3yckfw.alert_note(es-es,VS.100).gifNota:
    Cuando utilice cadenas de consulta no pase nunca datos confidenciales, ya que los usuarios podrán verlos y modificarlos fácilmente, lo que representa un riesgo de seguridad potencial.
  • Utilice el estado de sesión para almacenar información a la podrán tener acceso todas las páginas Web ASP.NET de la aplicación actual. Sin embargo, con este método se consume memoria del servidor y la información permanece almacenada hasta que finaliza la sesión, lo que puede suponer una sobrecarga mayor de la deseada simplemente para pasar información a la página siguiente. Para obtener información detallada, vea Información general sobre la administración de estados de ASP.NET.
  • En la página de destino, lea directamente en la página de origen los valores de los controles y los valores de las propiedades públicas. Esta estrategia funciona en dos situaciones: cuando la página de origen envía mensajes cruzados a la página de destino (para obtener más información, vea Cómo: Enviar páginas Web ASP.NET a una página diferente) y cuando se llama al método Transfer para transferir la ejecución de la página de origen a la página de destino en el servidor. En este tema se describe la estrategia de leer los valores directamente de la página de origen.

Si va a diseñar la página de origen expresamente para compartir información con las páginas de destino y ambas son páginas Web ASP.NET, puede agregar a la página de origen las propiedades públicas que exponen la información que desea que compartan las páginas. A continuación, podrá leer los valores de las propiedades en las páginas de destino.

6c3yckfw.alert_note(es-es,VS.100).gifNota:
Para poder leer las propiedades de la página de origen en la página de destino es necesario que ambas páginas pertenezcan a la misma aplicación Web.

Para obtener los valores de las propiedades públicas de la página de origen

  1. En la página de origen, cree una o varias propiedades públicas.En el ejemplo de código siguiente se muestra una propiedad denominada CurrentCity que expone el valor de un control TextBox denominado textCity.
    Public ReadOnly Property CurrentCity() As String
        Get
            Return textCity.Text
        End Get
    End Property
    
    public String CurrentCity
    {
        get
        {
            return textCity.Text;
        }
    }
    
    6c3yckfw.alert_note(es-es,VS.100).gifNota:
    Las propiedades de la página de origen, que se crean principalmente para exponer valores del envío de información entre páginas, suelen ser propiedades de sólo lectura. Aunque la página de origen puede contener propiedades públicas de lectura y escritura, generalmente no tiene sentido establecer una propiedad de la página de origen desde la página de destino, ya que no se conservará el valor.
  2. En la página de destino, agregue una directiva de página @ PreviousPageType que señale a la página de origen.En el ejemplo de código siguiente se muestra una directiva PreviousPageType que hace referencia a una página de origen denominada SourcePage.aspx.
    <%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %> 
    

    La directiva PreviousPageType hace que la propiedad PreviousPage de la página se asigne como tipo a la clase de la página de origen.

  3. En el código de la página de destino, utilice los miembros con establecimiento inflexible de tipos de la propiedad PreviousPage para leer las propiedades del código fuente.En el ejemplo de código siguiente se lee el valor de la propiedad CurrentCity definido en la página de origen.
    Label1.Text = PreviousPage.CurrentCity
    
    Label1.Text = PreviousPage.CurrentCity;
    

Si las páginas de origen y destino son páginas Web ASP.NET y pertenecen a la misma aplicación Web, puede leer los valores de los controles en la página de origen mientras está en la página de destino. Esta estrategia se puede utilizar si la página de origen no expone propiedades públicas que contengan la información necesaria.

Para obtener los valores de los controles de la página de origen en la misma aplicación

  • En la página de destino, obtenga una referencia a la página de origen mediante la propiedad PreviousPage de la página de destino y, a continuación, llame al método FindControl para obtener una referencia al control deseado.En el ejemplo de código siguiente se obtiene el valor del control TextBox1 de la página de origen y se muestra en el control denominado Label1:
    If Not Page.PreviousPage Is Nothing Then
        Dim SourceTextBox As TextBox
        SourceTextBox = CType(PreviousPage.FindControl("TextBox1"), _
            TextBox)
        If Not SourceTextBox Is Nothing Then
            Label1.Text = SourceTextBox.Text
        End If
    End If
    
    if (Page.PreviousPage != null)
    {
        TextBox SourceTextBox = 
            (TextBox)Page.PreviousPage.FindControl("TextBox1");
        if (SourceTextBox != null)
        {
            Label1.Text = SourceTextBox.Text;
        }
    }
    
    6c3yckfw.alert_note(es-es,VS.100).gifNota:
    El método FindControl busca el control en el contenedor de nombres actual. Si el control que busca se encuentra en otro control (generalmente, dentro de una plantilla), primero debe obtener una referencia al contenedor y, a continuación, buscar en él el control que desea obtener.

Si las páginas de origen y destino no pertenecen a la misma aplicación Web, puede leer los valores expuestos por la página de origen en la página de destino. Esta técnica también es válida si la página de destino es una página Web ASP.NET y la de origen no lo es. Tenga en cuenta que sólo puede obtener los valores expuestos; no puede leer los valores de los controles arbitrarios de la página.

Para obtener los valores de controles de la página de origen en otra aplicación

  • En la página de destino, lea la colección Form, que devuelve un diccionario de pares de nombre y valor, con un par para cada valor expuesto.En el ejemplo de código siguiente se muestra el identificador y el valor de cada uno de los controles expuestos en la página de origen, así como los valores expuestos en una etiqueta denominada Label1.
    6c3yckfw.alert_note(es-es,VS.100).gifNota:
    Entre la información expuesta en las páginas Web ASP.NET se encuentran los valores de los campos ocultos, como __VIEWSTATE, __EVENTTARGET y __EVENTARGUMENT, que se utilizan para el procesamiento interno de la página. En el ejemplo de código siguiente se excluyen los valores de los campos expuestos cuyo nombre comienza por doble subrayado (__).
    Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
            Handles Me.Load
        Dim displayValues As New StringBuilder()
        Dim postedValues As NameValueCollection = Request.Form
        Dim nextKey As String
        For i As Integer = 0 To postedValues.AllKeys.Length - 1
            nextKey = postedValues.AllKeys(i)
            If nextKey.Substring(0, 2) <> "__" Then
                displayValues.Append("<br>")
                displayValues.Append(nextKey)
                displayValues.Append(" = ")
                displayValues.Append(postedValues(i))
            End If
        Next
        Label1.Text = displayValues.ToString()
    End Sub
    
    void Page_Load(object sender, EventArgs e)
    {
        System.Text.StringBuilder displayValues = 
            new System.Text.StringBuilder();
        System.Collections.Specialized.NameValueCollection 
            postedValues = Request.Form;
        String nextKey;
        for(int i = 0; i < postedValues.AllKeys.Length - 1; i++)
        {
            nextKey = postedValues.AllKeys[i];
            if(nextKey.Substring(0, 2) != "__")
            {
                displayValues.Append("<br>");
                displayValues.Append(nextKey);
                displayValues.Append(" = ");
                displayValues.Append(postedValues[i]);
            }
        }
       Label1.Text = displayValues.ToString();
    }
    

vease: https://msdn.microsoft.com

 

Informacion valiosa, temas de interes y entretenimiento