Réglage imageURL à l'aide d'une fonction dans ASP.NET
J'ai fait cette tâche avant de sein des répéteurs et il a travaillé. Cependant, je ne peux pas obtenir le dessous de travailler pour moi en temps normal webforms page. Les images apparaissent comme des liens brisés et les points d'arrêt, j'ai mis dans le code-behind ne sont pas déclenchées.
(dans le fichier aspx)
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='<%# GetImageDirectory()%>btnRunReport.png' />
(code-behind)
public string GetImageDirectory()
{
return "~/App_Variants/LBSX/images/";
}
C'est la deuxième méthode que j'ai essayé, dans l'autre j'ai essayé de passer le imagename à travers comme une chaîne, et il serait de retour l'ensemble de la liaison de cette façon. Toujours pas de chance!
Toutes les pensées?
Merci!
[EDIT] Merci pour l'aide tout le monde. À la fin de la des astuces que j'ai trouvé récursive extrait qui a fait le tour comme suit:
private void UpdateImages(Control Parent)
{
foreach (Control c in Parent.Controls)
{
ImageButton i = c as ImageButton;
if (i != null)
{
i.ImageUrl = "~/App_Variants/LBSX/images/" + i.ImageUrl;
}
if (c.HasControls())
{
UpdateImages(c);
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
UpdateImages(Page);
...
Espère que cela aide quelqu'un d'autre.
Acclamations
- <%# - appel sur les données-lier de l'événement. <%= - appel de rendu (utilisation normale). vous êtes à la recherche pour les <%=
- Oui, désolé, j'ai aussi essayé le <%= mais toujours pas de point d'arrêt déclenché. Quoi d'autre pourrais-je fait de mal?
- Aussi, quand je l'affichage de la source de la page, la commande affiche la src comme: src="<%=GetImageDirectory()%20%>" plutôt que d'essayer de transmettre ce qu'il calcule. Il existe peut-être une idée là
Vous devez vous connecter pour publier un commentaire.
Première, tout comme Zachary mentionné, vous utilisez le bloc de code pour la liaison de données.
Seconde, comme vous l'avez déjà essayé, à l'aide d'un inline expression (
<%= %>
) ne fonctionne pas, soit dans votre cas, puisque vous ne pouvez pas utiliser une ligne d'expression pour n'importe quelle propriété d'un serveur-tag.Ce que vous pourriez faire à la place est de définir un bouton image à l'aide de la syntaxe HTML, en omettant le
runat="server"
tag, et d'utiliser la ligne de l'expression pour obtenir votre image URL:Ce qu'une ligne d'expression n'est, il appelle
Response.Write()
avec la valeur entre<%= %>
en tant que paramètre, par exemple<%= this.MyVar %>
estResponse.Write(this.MyVar)
.Votre syntaxe est la liaison de données, <%# %>. Si vous essayez juste de faire c# en ligne, vous devez utiliser <%= %>.
Je vous donne une autre solution. Utilisation ExpressionBuilder :
Créer une classe devired de ExpressionBuilder et remplacer la fonction GetCodeExpression
expressionArray1
est le tableau d'entrée pourGenerateLink
fonction. Vous pouvez modifier la taille de la table selon le nombre d'entrée paramètres de votre fonction2.Inscrivez votre expression dans webconfig
3.En vue de votre pouvez utiliser l'expression:
4.Profitez-en !!!