2016-05-01 5 views
0

Ich habe eine ASPX-Seite, die zwei Benutzersteuerelemente hat, eine mit einer Rasteransicht und eine andere mit einer Beschriftung, die zum Anzeigen von Benutzerdaten verwendet wird wenn er sich anmeldet. Jetzt möchte ich die Daten aus einer Spalte in der Rasteransicht verwenden, um in der Beschriftung im zweiten Benutzersteuerelement angezeigt zu werden. Wie kann ich das erreichen? Die Daten in der Gridview ändern sich für jeden Benutzer basierend auf seiner Sicherheitsrolle. Alle Eingaben werden berücksichtigt. Vielen DankZugriff auf Wert in einem Ascx-Steuerelement in einem anderen Ascx-Steuerelement auf derselben Seite

Antwort

0

Gridview-Benutzersteuerung löst ein benutzerdefiniertes Ereignis aus, wenn es die Informationen enthält, die Sie benötigen. Das Ereignis wird auf der Hauptseite behandelt und dem Benutzersteuerelement mit einer Beschriftung über eine öffentliche Eigenschaft zugewiesen, die Zugriff auf den im Steuerelement eingebetteten Beschriftungstext hat.

Default.aspx

Seite mit beiden Benutzer steuert

<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="StackOverFlowJunkVB._Default" %> 
<%@ Register Src="~/WebUserControlGridView1.ascx" TagPrefix="uc1" TagName="WebUserControlGridView1" %> 
<%@ Register Src="~/WebUserControlLabel1.ascx" TagPrefix="uc1" TagName="WebUserControlLabel1" %> 

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> 
    <uc1:WebUserControlGridView1 runat="server" id="WebUserControlGridView1" /> 
    <uc1:WebUserControlLabel1 runat="server" id="WebUserControlLabel1" /> 
</asp:Content> 

Default.aspx.vb

-Code hinter dem Text zu Label Benutzersteuerung über angehoben Ereignis von Gridview-Steuerelement Benutzer ordnet

Public Class _Default 
    Inherits Page 

    Private Sub WebUserControlGridView1_ReallyImportantLabelTextHandler(sender As Object, e As GridViewLabelEvent) _ 
     Handles WebUserControlGridView1.ReallyImportantLabelTextHandler 

     WebUserControlLabel1.ReallyImportLabelText = e.ImportantLabelText 

    End Sub 
End Class 

CodeBehind für das GridView UserControl

' Define a custom EventArgs class to pass some really important text 
Public Class GridViewLabelEvent 
    Inherits EventArgs 

    Public Property ImportantLabelText As String 
End Class 

' The user control with a GridView 
Public Class WebUserControlGridView1 
    Inherits System.Web.UI.UserControl 

    Public Event ReallyImportantLabelTextHandler As EventHandler(Of GridViewLabelEvent) 

    Private Sub GridView1_DataBound(sender As Object, e As EventArgs) Handles GridView1.DataBound 
    Dim gvle As New GridViewLabelEvent 
    gvle.ImportantLabelText = "This is really important" 
    RaiseEvent ReallyImportantLabelTextHandler(Me, gvle) 
    End Sub 
End Class 

Codebehind für das Label-Usercontrol

Public Class WebUserControlLabel1 
    Inherits System.Web.UI.UserControl 

    ' Property to assign Label Text 
    Public Property ReallyImportLabelText As String 
     Get 
      Return Label1.Text 
     End Get 
     Set(value As String) 
      Label1.Text = value 
     End Set 
    End Property 
End Class 
Verwandte Themen