这不会执行分隔符(它在确认对话框中逐字显示)。为什么不?此外,该变量是在代码隐藏中设置的,但在PreRender被调用的时候已准备就绪,所以我应该没问题?ascx中的内嵌动态字符串
<asp:LinkButton ... OnClientClick=
"return confirm('Are you sure you want to remove Contract
Period <%= ContractPeriod_N.Text %>?');" />
这不会执行分隔符(它在确认对话框中逐字显示)。为什么不?此外,该变量是在代码隐藏中设置的,但在PreRender被调用的时候已准备就绪,所以我应该没问题?ascx中的内嵌动态字符串
<asp:LinkButton ... OnClientClick=
"return confirm('Are you sure you want to remove Contract
Period <%= ContractPeriod_N.Text %>?');" />
尝试在后面的代码做它:
theLinkButton.OnClientClick =
"return confirm('Are you sure you want to remove Contract Period " +
Server.HtmlEncode(ContractPeriod_N.Text) + "?');";
您需要设置该属性,以使其全部来自渲染块或完全与out。试一试
<asp:LinkButton ... OnClientClick=
"<%= "return confirm('Are you sure you want to remove Contract
Period " + ContractPeriod_N.Text + "?');" %>" />
当然,它不会被执行。它位于字符串文字的中间。如果你想在某个字符串中使用<%
文本,该怎么办?
我有点粉笔它魔术= o似乎有很多在asp – 2009-10-30 19:05:34
看到我对另一个问题的回答here。我相信你能完成你想要的使用的ExpressionBuilder类似于
定制/// <summary>
/// An Expression Builder for inserting raw code elements into ASP.NET markup.
/// Code obtained from: http://weblogs.asp.net/infinitiesloop/archive/2006/08/09/The-CodeExpressionBuilder.aspx
/// </summary>
[ExpressionPrefix("Code")]
public class CodeExpressionBuilder : ExpressionBuilder
{
/// <summary>
/// Inserts the evaluated code directly into the markup.
/// </summary>
/// <param name="entry">Provides information about the expression and where it was applied.</param>
/// <param name="parsedData">Unused parameter.</param>
/// <param name="context">Unused paramter.</param>
/// <returns>A <see cref="CodeExpression"/>.</returns>
public override CodeExpression GetCodeExpression(BoundPropertyEntry entry, object parsedData, ExpressionBuilderContext context)
{
return new CodeSnippetExpression(entry.Expression);
}
}
你的标记会再看看这样的:
<asp:LinkButton ... OnClientClick=
"return confirm('Are you sure you want to remove Contract
Period <%$ Code: ContractPeriod_N.Text %>?');" />
如果你正在使用数据绑定,那么你可以这样设置
<asp:LinkButton runat="server" Text="Hello" OnClientClick='<%# String.Format("return confirm(\"Are you sure you want to remove Contract Period {0}?\");", ContractPeriod_N.Text) %>' />
你不能在服务器控件里使用<%= %>-你会得到服务器标签不能包含<% ... %>构造编译错误,如果你尝试的话! – RichardOD 2009-10-30 18:56:57