2012-04-04 3 views
2

내 gridview 사용자 정의 코드에서 이러한 이벤트 중 일부가 있습니다. 하지만 여기서 가장 중요한 문제는 이전 레코드, 즉 변경중인 레코드 또는 old.value를 다른 열에 저장한다는 것입니다. 따라서 사용자가 따옴표없이 "< newValue>"라고 말하면 aspx 유효성 검사기는 입력을 위험한 것으로 간주합니다.gridview 내의 필드 인코딩

유효성 검사를 사용하지 않도록 설정할 수 있으며 값이 DB에 기록 될 때 html로 인코딩되지만 "이전 값"열의 gridview에 다시 값을 표시하면 ... & lt Neutral & gt 세미콜론이 누락되어이 사이트가 해독됩니다.

ASPX에서 인라인으로 인 코드하고 디코딩 할 수 있습니까?

Gridview에 입력되는이 템플릿 필드를 어떻게 인코딩 할 수 있습니까?

<EditItemTemplate> 
    <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("lang_String") %>'></asp:TextBox> 
</EditItemTemplate> 

전체 사이트의 유효성을 검사하지 않고 특정 HTML 문자를이 입력란에 입력하는 것을 허용하고 싶습니다.

전체 열에 적용하려면이 항목이 필요합니다.

고마워요,

답변

1

이 문제를 해결할 수있는 효과적인 해결책을 찾았습니다. 뒤에 코드에서

Private Function DecodeIT(firstName As String) As String 
Return HttpUtility.HtmlDecode(firstName) 
End Function 

대부분의 다른 soltions가에 검증을하지 않도록 제안 ... 여기

<Columns> 
<asp:TemplateField> 
    <ItemTemplate> 
     <asp:Label ..... Text='<%# DecodeIT(Eval("FirstName").ToString())%>' /> // for "decoding" 
</ItemTemplate> 
<EditTemplate> 
     <asp:TextBox id="TextBox1" runat="server" /> // for "encoding" 

함수입니다 ....하여 HTML 인코딩을 처리하는 함수를 호출하려면 다음을 입력 페이지 지시문이나 web.config에서이 문제를 해결하는 것이 가장 좋은 방법은 아닙니다.

이와 같은 기능을 사용하는 것이 가장 좋습니다.

관련 문제