我正在尝试将存储在Web配置中的值打印为列表项的文本。
<asp:ListItem Enabled="true" Selected="true" Text="Web Only - <%$ AppSettings:SubscriptionPrice %>"
Value="web" />
会给我:仅限网络 - &lt;%$ AppSettings:SubscriptionPrice%&gt;
但是,如果我删除仅限Web的文本并执行此操作:
<asp:ListItem Enabled="true" Selected="true" Text="<%$ AppSettings:SubscriptionPrice %>"
Value="web" />
我会得到所需的变量。有没有办法从我的appsettings中获取文本和值?
答案 0 :(得分:0)
你不能轻易地内联。您的选择是:
这是代码表达式构建器
namespace Funky
{
[System.Web.Compilation.ExpressionPrefix("Code")]
public class CodeExpressionBuilder : System.Web.Compilation.ExpressionBuilder
{
public override System.CodeDom.CodeExpression GetCodeExpression(BoundPropertyEntry entry,
object parsedData, System.Web.Compilation.ExpressionBuilderContext context)
{
return new System.CodeDom.CodeSnippetExpression(entry.Expression);
}
}
}
添加此web.config条目
<compilation debug="true" targetFramework="4.5">
<expressionBuilders>
<add expressionPrefix="MyCode" type="Funky.CodeExpressionBuilder"/>
</expressionBuilders>
</compilation>
最后使用代码表达式如下:
<asp:ListItem Enabled="true" Selected="true" Text='<%$ MyCode: "Web Only - " + ConfigurationManager.AppSettings["SubscriptionPrice"] %>' Value="web" />
答案 1 :(得分:0)
我不确定您是否可以在页面上执行此操作,但您可以在代码文件中执行此操作:
ListItem item = new ListItem();
item.Text = "Web Only - " + System.Configuration.ConfigurationManager.AppSettings["SubscriptionPrice"];
item.Value = "web";
item.Selected = true;
ListBox1.Items.Add(item);
答案 2 :(得分:0)
对于之前的帖子感到抱歉。
我认为你必须绑定值才是代码。
ddl.Items.Clear()
ddl.Items.Add(New ListItem("Web Only -" & ConfigurationManager.AppSettings("SubscriptionPrice"), "Web"))