使用ASP.NET中的函数设置imageURL
我之前在转发器中完成了这个任务并且它已经工作了。 但是,我无法在正常的网页表单中找到以下内容。 图像显示为断开的链接,我在代码隐藏中的断点不会被触发。
(在aspx文件中)
<asp:ImageButton ID="ImageButton1" runat="server" ImageUrl='btnRunReport.png' />
(代码隐藏)
public string GetImageDirectory() { return "~/App_Variants/LBSX/images/"; }
这是我尝试的第二种方法,在另一种方法中,我尝试将imagename作为字符串传递,并且它会以这种方式返回整个链接。 仍然没有运气!
有什么想法吗?
谢谢!
[编辑]感谢大家的帮助。 最后,在方便的提示后,我找到了一个递归片段,其function如下:
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); ...
希望它可以帮助别人。
干杯
首先,就像Zachary提到的那样,您正在使用代码块进行数据绑定。
其次,正如您已经尝试过的那样,使用内联表达式( <%= %>
)在您的情况下将不起作用,因为您不能对服务器标记的任何属性使用内联表达式。
您可以做的是使用HTML语法定义图像按钮,省略runat="server"
标记,并使用内联表达式来获取图像的URL:
内联表达式的作用是,它使用<%= %>
之间的值作为参数调用Response.Write()
,例如<%= this.MyVar %>
是Response.Write(this.MyVar)
。
您的语法用于数据绑定,<%#%>。 如果您只是尝试使用内联c#,则应使用<%=%>。
我给你另一种解决方案。 使用ExpressionBuilder :
-
创建一个从ExpressionBuilder开始的类并覆盖函数GetCodeExpression
namespace your.namespace { public class CustomBuilder : ExpressionBuilder { public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context) { Type type1 = entry.DeclaringType; PropertyDescriptor descriptor1 = TypeDescriptor.GetProperties(type1)[entry.PropertyInfo.Name]; CodeExpression[] expressionArray1 = new CodeExpression[1]; expressionArray1[0] = new CodePrimitiveExpression(entry.Expression.Trim()); String temp = entry.Expression; return new CodeCastExpression(descriptor1.PropertyType, new CodeMethodInvokeExpression(new CodeTypeReferenceExpression(base.GetType()), "GenerateLink", expressionArray1)); } public static String GenerateLink(String link) { return ConfigurationManager.AppSettings["MediaPath"] + link + "?ver=" + ConfigurationManager.AppSettings["MediaCode"]; } } }
expressionArray1
是GenerateLink
函数的输入数组。 您可以根据函数的输入参数数量更改数组的大小
2.在webconfig中注册表达式
3.在视图中你可以使用新的表达式:
4.享受!!!
上述就是C#学习教程:使用ASP.NET中的函数设置imageURL分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1039156.html