none
Ejecutar una función en ASP.Net con <%#Eval("Funcion()")%> RRS feed

  • Pregunta

  • Buenas,

    Tengo una consultilla que hacer a ver si alguien me puede echar un cable.

    En mi código behind en VB6 tengo esta sencilla función:

        Public Function Traducir() As String
            Return "CadenaDePrueba"
        End Function

     

    Lo que quiero es poder llamarla desde la cabecera de de un TabPanel tal que así:

    <table width="100%">
            <tr>
              <td>
                <asp:TabContainer ID="MainTab" runat="server" ActiveTabIndex="0">
                  <asp:TabPanel ID="TabPanel1" runat="server" --- AQUI --- HeaderText='<%#Eval("Traducir()")%>' >
                  </asp:TabPanel>
                  <asp:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel1">
                  </asp:TabPanel>
                </asp:TabContainer>
              </td>
            </tr>
          </table>

    La funcionalidad es interesante pues luego quiero ampliar la funcionalidad para poder hacer traducciones en tiempo de ejecución que es la finalidad final. Sé que si funiona para otros componentes como un Gridview, supongo que aquí también.

    He probado varias soluciones pero estoy un poco atascado y no he dado con la tecla, espero haber sido suficientemente claro y tengáis alguna idea para mi.

    Muchas Gracias de antemano, un saludo

     

    JoSe

    martes, 17 de agosto de 2010 7:05

Todas las respuestas

  • hola

    En mi código behind en VB6

    VB6 ? no era VB.NET

    Lo que quiero es poder llamarla desde la cabecera de de un TabPanel

    el tema s que el TabPanel no e bindea a datos po es e Eval no funciona, en tu as usa simplemente el <%= %>

     

    <table width="100%">
    <tr>
      <td>
        <asp:TabContainer ID="MainTab" runat="server" ActiveTabIndex="0">
          <asp:TabPanel ID="TabPanel1" runat="server" HeaderText='<%= Traducir()%>'
          </asp:TabPanel>
          <asp:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel1">
          </asp:TabPanel>
        </asp:TabContainer>
      </td>
    </tr>
    </table>

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 17 de agosto de 2010 12:59
  • Hola,

     

    gracias por responder rápido, he puesto tu sugerencia pero sigue sin mostrarme nada de nada, compila y ejecuta bien pero la

    cabecera del TabPanel sigue saliendo como si no tuviera ningún texto.

    Sé que con el '<%=%>' pillaria variables pero la funcion no.

    Lo he intentado como función dentro del código behind o cómo una función en una clase externa pero no me sale nada. O mejor aún, podrias decirme cómo hacer una carpeta resource dinámica, o sea, cambiante en función de cada entidad (empresas que pertenecn a un grupo de empresas) para referenciarlas individualmente pues son configurables.

     

    Un saludo,

     

    JoSe

    miércoles, 18 de agosto de 2010 6:18
  • hola

    si lo defines como funcion o propiedad publica dentro de la misma pagian deberia funcionar

     

    podrias decirme cómo hacer una carpeta resource dinámica

    no entendi lo de carpeta, te refires a usar un archivo de recuros, un .resx tomando los valores desde alli ?

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 19 de agosto de 2010 3:20
  • Buenas,

    Siento haber tardado tanto en contestar pero hemos estado de vacaciones por aquí toda la semana, ya estamos a tope de nuevo.

    Mira he intentado lo que me has sugerido con la propiedad así:

    Private cadena As String = "TraduccionDePrueba"

        Public Property Traduccion() As String
            Get
                Return cadena
            End Get
            Set(ByVal value As String)
                cadena = String.Copy(value)
            End Set
        End Property

     

    tampoco sale nada, lo de función pública es de hecho como está declarado desde un principio y lo de la carpeta de recursos, sí, ese una carpeta de recursos por cada entidad que tengamos. De manera explícita pensamos que sí podría ser dinámica, de manera implícita pensamos que no. No sé si me he explicado muy bien, lo siento.

     

    Gracias de nuevo,

    JoSe

    lunes, 23 de agosto de 2010 7:00
  • por que no lo haces por codigo fuente 

     protected void Page_Load(object sender, EventArgs e)

            {

    cambiartextotab();

    }

     

     void cambiartextotab() {

                for (int i = 0; i < TabContainer1.Tabs.Count;i++ )

                {

                    TabContainer1.Tabs[i].HeaderText = traducir(TabContainer1.Tabs[i].HeaderText);

                }

            }

    string traducir(string texto){

    return texto;

    }

     

    espero que te sirva, lo unico es que el codigo esta en C#

    miércoles, 22 de septiembre de 2010 14:58
  • Muchas gracias por vuestras respuestas, agradezco vuestro interés y todos los intentos por ayudarme con este problema.

    Al final, por todos los problemas que nos han surgido al plantear la traduccion hemos descartado esta manera de solucionarlo.

    Lo dicho, muchas gracias a todos, un saludo

     

    JoSe

    lunes, 27 de septiembre de 2010 7:00