Вызов метода из мастер-страницы - PullRequest
0 голосов
/ 02 апреля 2012

я хочу вызвать метод, помещенный в тег на главной странице

как это

<script runat="server">  
protected void usernameTextBox_TextChanged(object sender, System.EventArgs e)
{
}  
</script>

внутри формы, которая использует эту главную страницу.

примечание: что я буду использовать этот метод, например, для текстового поля внутри formview

Спасибо.

Ответы [ 3 ]

1 голос
/ 02 апреля 2012

Вы не должны вызывать обработчики событий как функции, поэтому, если вы не используете повторно обработчик событий для другого элемента управления на странице содержимого, вы должны создать публичный метод на главной странице, который делает все, что делает обработчик событий:

На главной странице:

protected void usernameTextBox_TextChanged(object sender, EventArgs e)
{
    SomeMethod();
}

public void SomeMethod()
{
    //do your logic in this method
}

На странице добавьте эту строку в директиву страницы:

<%@ MasterType VirtualPath="~/Themes/Master.master" %>

После добавления этой строки в директиву страницы вы можете вызвать метод следующим образом:

Master.SomeMethod();
0 голосов
/ 02 апреля 2012

При загрузке формы назначьте обработчик текстового поля главной страницы для события Textbox страницы содержимого.

protected void Page_Load(object sender, EventArgs e)
{
    MasterPageClassName MyMasterPage = (MasterPageClassName)Page.Master; 

    TextBox t = new TextBox();
    t.TextChanged += new EventHandler(MyMasterPage.usernameTextBox_TextChanged);
}
0 голосов
/ 02 апреля 2012

на вашей странице добавьте эту директиву вместе с директивой страницы следующим образом:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="A.aspx.cs" Inherits="StackOverflow.A" %>
<%@ MasterType VirtualPath="~/Site.Master" %>

и из какого-либо метода на вашей странице вызовите метод foo () (это определено на вашей главной странице) (убедитесь, что он общедоступен)

((SiteMaster)this.Master).foo();

имя моей главной страницы - SiteMaster

так вы можете вызвать члена своей главной страницы. я не уверен, будет ли он работать правильно для метода, который вы хотите вызвать (скорее всего, если переданные аргументы недостаточно хороши)

...