Asp.net ASP NET如何将事件从ASPX发送到ASCX

Asp.net ASP NET如何将事件从ASPX发送到ASCX,asp.net,sitecore,sitecore6,Asp.net,Sitecore,Sitecore6,我得到了一些旧的sitecore asp net应用程序。 我发现在布局(aspx)上,我有ImageButton控件,可以更改站点语言 protected void btnLanguage_Click(object sender, EventArgs e) { ImageButton flag = (ImageButton)sender; if (string.IsNullOrEmpty("") == false) {

我得到了一些旧的sitecore asp net应用程序。 我发现在布局(aspx)上,我有ImageButton控件,可以更改站点语言

    protected void btnLanguage_Click(object sender, EventArgs e)
    {
        ImageButton flag = (ImageButton)sender;
        if (string.IsNullOrEmpty("") == false)
        {
           UserContext.CurrentCulture = LanguageManager.GetLanguage(flag.CommandArgument);                     
        }
        else
        {
            SC.Context.Language = LanguageManager.GetLanguage(flag.CommandArgument);
        }
    }

但是我有很多控件,这些控件应该在这个事件调用之后进行转换。由asp网页生活方式的过程中,这是不好的行为,但无论如何我需要做一些事情与它。在我的情况下,最好的方法是什么?应该如何正确地执行?

如果这是Sitecore应用程序,请让Sitecore处理它,将图像按钮更改为带有超链接的常规图像,并传入语言参数(使用LinkManager):

/en CA/some folder/some page.aspx

/some folder/some page.aspx?sc_lang=en CA

然后,您可以基于
Sitecore.Context.lanagugge


还有一些有用的,请参见注释。

Alistair Deneys记录了如何使用事件来允许组件相互通信。值得注意的是这种机制,看看Alistair的帖子。

想到的最快方法是在会话中保存语言,并从各种控件访问它(主页发回时,它们都会收到页面加载事件,因此您可以在那里签入)。谢谢。是的,这是一个好主意。但是正确的方法呢?