Einzelnen Beitrag anzeigen
Ungelesen 26.02.15, 13:03   #1
HammerRei
abused
 
Benutzerbild von HammerRei
 
Registriert seit: Jul 2010
Beiträge: 285
Bedankt: 108
HammerRei ist noch neu hier! | 0 Respekt Punkte
Standard ASP.Net RadioButtonList SelectedIndexChanged in Masterseite lädt nach Contentseite

Hallo Zusammen!
Im Rahmen der Projektvorgaben programmiere ich ausschließlich in VB.Net und nicht in C#

Aufbau:
Meine aktuelle Seite besteht aus 2 MasterPages und 1 ContentPage
Site.master(1) > Default.master(2) > Content.aspx(3)
(Hinter jeder Seite befindet sich Code gleichnamig mit Anhang .vb)
Die 3-Schichtige Hierarchie deshalb, da ich neben der Site.master auch in Default.master navigieren möchte und es durch Codeauftrennung übersichtlicher wird.

Problem:
Nachdem man in Default.master(2) auf einen RadioButton(List) klickt, wird die Methode "AbteilungButtonList_SelectedIndexChanged" erst dann aufgerufen, nachdem meine Content.aspx(3) geladen wurde, allerdings möchte ich zuerst abhängig der Auswahl einen Wert in die aktuelle Session(Cookie) abspeichern, in der Content.aspx-Seite(3) rufe ich unter anderem Code auf, um Tabellen zu generieren, die abhängig vom ausgewählten Button-Wert sind.

Reihenfolge, wie Seiten geladen werden (Seiten asp.net):
Content.aspx, Default.master, Site.master

Ich habe den Code auf das nötigste komprimiert:

Zitat:
Site.master
Code:
<%@ Master Language="VB" AutoEventWireup="true" CodeFile="Site.master.vb" Inherits="SiteMaster" %>
<!DOCTYPE html>
<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <asp:PlaceHolder runat="server">
        <%: S*****s.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>
</head>
<body>
    <form runat="server">
        <!-- Content -->
        <div class="container body-content">
            <asp:ContentPlaceHolder ID="MainContent" runat="server">
            </asp:ContentPlaceHolder>

        </div>
    </form>
</body>
</html>
Default.master - darunterliegende Masterseite
Code:
<%@ Master Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="Default.master.vb" Inherits="Content_TableDummy" Codebehind="~/Default.master.vb"%>
<asp:Content ID="Content1" ContentPlaceHolderID="MainContent" Runat="Server">
<div class="jumbotron">
        <p class="lead">Tabellenvorlage: <a><asp:Literal runat="server" EnableViewState="false" ID="txtValueA" /></a></p>
        <div id="borderless">
                 <!-- AutoPostBack=True, sodass Code ausgeführt wird -->
                 <asp:RadioButtonList ID="AbteilungButtonList" runat="server" AutoPostBack="true"  RepeatDirection="Horizontal" OnSelectedIndexChanged="AbteilungButtonList_SelectedIndexChanged" >
                    <asp:ListItem text="Montage" value="Montage"/>
                    <asp:ListItem text="Elektronik" Value="Elektronik"/>
                    <asp:ListItem text="Lack" Value="Lack"/>
                    <asp:ListItem text="Sensorik" Value="Sensorik"/>
                    <asp:ListItem text="Kunststoff" Value="Kunststoff"/>
                </asp:RadioButtonList>    
        </div>
        <div>
            <!-- Tabellen -->
            <asp:ContentPlaceHolder ID="TableContent" runat="server">
            </asp:ContentPlaceHolder>
            <!-- Tabelle Auswahllogik -->
      </div>
</asp:Content>
Default.master.vb - Codebehind
Code:
Partial Class Content_TableDummy
    Inherits System.Web.UI.MasterPage
    Protected Sub AbteilungButtonList_SelectedIndexChanged(sender As Object, e As EventArgs)
        ' RadioButton Auswahl in Session abspeichern
        Dim abteilung As String
        abteilung = AbteilungButtonList.SelectedValue                     ' Test
        System.Web.HttpContext.Current.Session("Abteilung") = abteilung             ' Schreibe ausgewählten Wert in Session("Abteilung") '
    End Sub
End Class

Content.aspx - Contentseite
Code:
<%@ Page Language="VB" MasterPageFile="~/Default.master" AutoEventWireup="false" CodeFile="Content_Default.aspx.vb" Inherits="Content_Default" %>

<%-- Add content controls here --%>
<asp:Content ID="Content1" ContentPlaceHolderID="TableContent" runat="server">
<!-- Tabellenvorlage -->
                <asp:Table ID="overviewtable" CssClass="Status" runat="server">
                </asp:Table>
</asp:Content>
Content.aspx.vb
Code:
Partial Class Content_Default
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim x As String
        Dim stationAr As String(,)
        ' Erkennen, welcher ratio-button angeklickt wurde von Default.master - Session(Cookie)'
        x = System.Web.HttpContext.Current.Session("Abteilung")
        If Len(x) > 0 And Len(x) < 15 And Not InStr("Nothing", x) Then              
' Falls Wert "Abteilung" belegt, schicke an RequestHandler.PushAbteilungChoice
            Dim instance As New RequestHandler()
            stationAr = instance.PushAbteilungChoice(x)
        End If
' Anschließend Befülle Tabelle mit stationAr
    End Sub
End Class











__________________
[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
HammerRei ist offline   Mit Zitat antworten