Je souhaite localiser ma page ASPX.Impossible d'utiliser GetLocalResourceObject dans InstantiateIn
Cela devrait inclure linkbuttons créé dynamiquement dans un GridView intérieur de InstantiateIn
(amendement 1: mise en œuvre de la méthode System.Web.UI.ITemplate.InstantiateIN pour manipuler l'apparence d'un GridView)
(amendement n ° 2: six premières lignes de code ajouté pour mieux indiquer l'emplacement d'un autre code)
Mais à l'intérieur InstantiateIn je ne peux pas utiliser (voir) la méthode GetLocalResourceObject
Solution: utiliser une variable de session
Question: Pourquoi ne puis-je pas utiliser GetLocalResourceObject dans InstantiateIN?
ce qui suit passe à l'intérieur InstantiateIn
public class DynamicTemplateGridViewSearch : ITemplate
{
public void InstantiateIn(System.Web.UI.Control Container)
{
switch (ItemType)
{
case ListItemType.Item:
switch (InfoType)
{
case "Command":
{
LinkButton search_button = new LinkButton();
search_button.ID = "search";
search_button.CommandName = "Edit";
//following line does not work. Error is:
//The name 'GetLocalResourceObject' does not exist in the current context
search_button.Text = GetLocalResourceObject("SearchButtonResource1.Text").ToString();
//so I have to create a Session-String in Page_Load
//which is referenced here
search_button.Text = (string)new Page().Session["SearchText"]; // "Search";
search_button.Click += new EventHandler(search_button_Click);
Container.Controls.Add(search_button);
VinaiC, merci pour votre réponse. J'ai essayé votre suggestion, mais GetLocalResourceObject n'apparaît pas dans IntelliSense comme méthode (pour une raison quelconque, il n'y a aucune visibilité de cet endroit). Pour une meilleure compréhension, j'ai ajouté six lignes de code principales. Il est lié à l'implémentation de la méthode System.Web.UI.ITemplate.InstantiateIN pour manipuler l'apparence d'un GridView. Nous ajoutons par programme un LinkButton (et plein d'autres choses) et nous aimerions localiser tous ces textes. – Henry99
@ Henry99, pouvez-vous voir la propriété Page pour Container dans IntelliSense? Quoi qu'il en soit, Container est un contrôle et il aura la propriété Page pour obtenir l'objet page et Page a la méthode GetLocalResourceObject. Vous devriez essayer de compiler ce code et vérifier si vous avez des erreurs. – VinayC
@VianyC, merci beaucoup pour votre temps passé! (ma réponse est divisée en plusieurs commentaires) J'écris .NET Business-Applications et ne suis pas le gourou du code concernant la compréhension des contrôles serveur ASP.NET. J'utilise le codage standard pour faire apparaître des contrôles à l'intérieur d'un GridView ASP.NET. Par exemple un LinkButton dont l'attribut de texte est "Search" qui devrait être localisé. Pour cela, je crée une classe DynamicTemplateGridView: ITemplate (voir code ci-dessus) À l'origine j'ai essayé ce qui suit pour localiser les chaînes (à l'intérieur de la méthode InstantiateIN de DynamicTemplateGridView) – Henry99