master page re direct

Last post 07-03-2009 8:52 AM by SSA. 4 replies.

Sort Posts:

  • master page re direct

    07-03-2009, 7:28 AM
    • Member
      42 point Member
    • llyrjones
    • Member since 02-06-2008, 8:08 PM
    • Cymru UK
    • Posts 59

    Hi

    My goal is when a user selects a language from a dropdown list the page will then be redirected to another master page.

    I have gone so far but get the following error.

    "Object reference not set to an instance of an object"

    Please can someone help? feel free to change my code as needed

    <%@ Page Title="" Language="VB" MasterPageFile="~/nwp_test.master" AutoEventWireup="false" CodeFile="Test_master.aspx.vb" Inherits="Test_master" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder2" Runat="Server">
     
    </asp:Content>
    <asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
    <asp:Label ID="Label1" runat="server" meta:resourceKey="Label1"></asp:Label>
            
          
            <br />
            <br />
            
            <asp:Label ID="Welcome" runat="server"
                Text="<%$ Resources:Resource, Welcome %>"></asp:Label>
            <br />
            <br />
            <asp:DropDownList ID="language1" runat="server" AutoPostBack="True">
                <asp:ListItem Value="en-gb">english</asp:ListItem>
                 <asp:ListItem Value="fr">French</asp:ListItem>
                  <asp:ListItem Value="cy-gb">Cymraeg</asp:ListItem>
               
            </asp:DropDownList>

        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="Label"></asp:Label>
    </asp:Content>

    Imports System.Threading
    Imports System.Globalization

    Partial Class Test_master
        Inherits Page

        Protected Overrides Sub InitializeCulture()
            Dim lang As String = Request("language1")

            If lang IsNot Nothing Or lang <> "" Then
                Thread.CurrentThread.CurrentUICulture = New CultureInfo(lang)
                Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(lang)
            End If
        End Sub

       

        Public Sub Page_PreInit(ByVal sender As Object, _
        ByVal e As EventArgs) Handles Me.PreInit
            If language1.SelectedValue = "cy-gb" Then
                Label2.Text = "bonjour"
            End If
            Me.MasterPageFile = "~/cy/nwp_cy.master"
        End Sub

       
    End Class

  • Re: master page re direct

    07-03-2009, 7:48 AM
    • Contributor
      2,508 point Contributor
    • SSA
    • Member since 05-07-2009, 3:16 PM
    • Amsterdam, The Nederlands
    • Posts 418

    You are trying to do it on Page_PreInit, so you need to do it like this

    if ((Request.Form["langDropDownList"] != null))
            {
                String selectedLanguage = Request.Form["langDropDownList"];

     

    if ((Request.Form["language1"] != null))

            {

                String selectedLanguage = Request.Form["language1"];

    if(selectedLanguage.Equels("cy-gb"))

    {

    /*Change label text */

    }

    else

    {

    /*Change master page file*/

    }


  • Re: master page re direct

    07-03-2009, 8:09 AM
    • Member
      42 point Member
    • llyrjones
    • Member since 02-06-2008, 8:08 PM
    • Cymru UK
    • Posts 59

    Still baffeld!

  • Re: master page re direct

    07-03-2009, 8:46 AM
    • Contributor
      2,508 point Contributor
    • SSA
    • Member since 05-07-2009, 3:16 PM
    • Amsterdam, The Nederlands
    • Posts 418

    What is the error, object refrence is null? or master page is not changed? Can you debug and see on which line it occured?

  • Re: master page re direct

    07-03-2009, 8:52 AM
    Answer
    • Contributor
      2,508 point Contributor
    • SSA
    • Member since 05-07-2009, 3:16 PM
    • Amsterdam, The Nederlands
    • Posts 418

    I suspect it could also come on 

    Label2.Text = "bonjour"

    Try to do above setting later inseted , may be on page load.

    else refer this:

    http://blog.tatham.oddie.com.au/2008/12/20/accessing-aspnet-page-controls-during-preinit/

Page 1 of 1 (5 items)