2009-10-30 3 views
3

구분 기호 (확인 대화 상자에 축 어적으로 표시됨)가 실행되지 않습니다. 왜 안돼? 또한 해당 변수는 코드 숨김에 설정되지만 PreRender가 호출 될 때까지 준비가되었으므로 올바르게 처리해야합니다.ascx의 인라인 동적 문자열

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

답변

3

뒤에 코드에서 그 일을 시도 데이터 바인딩을 사용하는 경우이 방법으로 설정할 수 있습니다.

<asp:LinkButton runat="server" Text="Hello" OnClientClick='<%# String.Format("return confirm(\"Are you sure you want to remove Contract Period {0}?\");", ContractPeriod_N.Text) %>' /> 
1

모두가 렌더링 블록에서 나오거나 완전히 벗어나도록 속성을 설정해야합니다. 시도해보기

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

서버 컨트롤 안에 <%= %>을 사용할 수 없습니다. 서버 태그가 포함될 수 없습니다. <% ... %>은 컴파일러 오류를 생성합니다. – RichardOD

1

물론 실행되지 않습니다. 문자열 리터럴의 중간에 있습니다. 문자열에 어딘가에 <% 텍스트를 넣고 싶다면 어떻게해야할까요?

+0

나는 다소 마술에 그것을 chalked = o 거기에있을 것 같다로 ASP에서 –

1

다른 질문 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); 
    } 
} 

마크 업 후 보일 것 같은 :

 theLinkButton.OnClientClick = 
"return confirm('Are you sure you want to remove Contract Period " + 
    Server.HtmlEncode(ContractPeriod_N.Text) + "?');"; 
0

:

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