2016-05-01 5 views
0

У меня есть страница aspx, в которой есть два пользовательских элемента управления, один из которых имеет вид сетки, а другой с меткой в ​​нем, которая используется для отображения пользовательских данных когда он войдет в систему. Теперь я хочу использовать данные из одного столбца в виде сетки, которые будут отображаться на этикетке во втором пользовательском элементе управления. Как я могу это достичь. Данные в gridview изменяются для каждого пользователя, основываясь на его роли безопасности. СпасибоКак получить доступ к значению в одном элементе управления Ascx в другом элементе управления Ascx на той же странице

ответ

0

Пользовательское управление Gridview повышает пользовательское событие, когда оно имеет необходимую информацию. Событие обрабатывается на главной странице и назначается UserControl с меткой через общедоступное свойство, которое имеет доступ к тексту метки, встроенному в элемент управления.

Default.aspx

страница с обоих пользователем управляет

<%@ 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

кодом за который назначает текст пользовательского контроля этикетки с помощью поднятого события из пользовательского элемента управления GridView

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 для 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 для этикетки 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 
Смежные вопросы