3

これは区切り文字を実行しません (確認ダイアログに表示される逐語)。なぜだめですか?また、その変数はコード ビハインドで設定されますが、PreRender が呼び出されるまでには準備ができているので、問題ないはずです。

<asp:LinkButton ... OnClientClick=
    "return confirm('Are you sure you want to remove Contract 
        Period <%= ContractPeriod_N.Text %>?');" />
4

5 に答える 5

3

コードビハインドで試してみてください:

       theLinkButton.OnClientClick = 
"return confirm('Are you sure you want to remove Contract Period " +  
    Server.HtmlEncode(ContractPeriod_N.Text) + "?');"; 
于 2009-10-30T18:53:18.513 に答える
1

プロパティをすべてレンダー ブロックから、または完全にレンダー ブロックから除外するように設定する必要があります。これを試してみてください

<asp:LinkButton ... OnClientClick=
    "<%= "return confirm('Are you sure you want to remove Contract 
        Period " + ContractPeriod_N.Text + "?');" %>" />
于 2009-10-30T18:40:55.760 に答える
1

ここで別の質問に対する私の回答を参照してください。次のようなカスタム 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 %>?');" />
于 2009-10-30T18:53:16.907 に答える
1

もちろん実行されません。文字列リテラルの途中にあります。<%テキストを文字列のどこかに入れたい場合はどうしますか?

于 2009-10-30T18:42:15.290 に答える
0

データバインディングを使用している場合は、この方法で設定できます

<asp:LinkButton runat="server" Text="Hello" OnClientClick='<%# String.Format("return confirm(\"Are you sure you want to remove Contract Period {0}?\");", ContractPeriod_N.Text) %>' />
于 2009-10-30T20:36:24.450 に答える