asp.net 2.0에서 GridView를 사용하고 있으며 인라인 편집을 수행하려고합니다. 객체 데이터 소스를 사용하고 있습니다. 내 gridview의 정수 필드에 대한 유효성 검사 컨트롤을 사용하려면 <TemplateFields>
으로 만들고 데이터 형식 유효성 검사기와 범위 유효성 검사기를 추가했습니다. 이렇게하면 공백 필드 나 0에서 999 사이의 정수 값을 가질 수 있습니다.ASP.NET - GridView - EditItem - 정수의 Null 값은 무엇입니까?
속성 값이 정의되지 않은 경우 "-"를 표시하려고합니다. 정수에는 Null이 없으므로 Null을 나타내는 값으로 -1을 사용하기로 결정했습니다.
값이 -1 인 경우 "-"표시로 다시 포맷 중입니다.
<ItemTemplate>
<asp:Label ID="lblPC" runat="server" Text='<%# FormatIntegerToText(Eval("PitchCount"),"-") %>'></asp:Label>
</ItemTemplate>
을 코드에서 다음과 같이 내가 함수 FormatIntegerToText을 정의한 뒤에 : 나는 다음과 같이 그렇게
Protected Function FormatIntegerToText(ByVal value As Object, ByVal nullvalue As String) As String
' Make sure value is not null... if so, return "-"
If value = Null.NullInteger() Then
Return nullvalue
Else
Return value.ToString()
End If
End Function
이 모든 잘 작동합니다. 나는 현재 내 <EditItemTemplate>
<EditItemTemplate>
<asp:textbox ID="txtPC" runat="server" Text='<%# Bind("PitchCount") %>' width="25" Columns="2"></asp:textbox>
....a couple of validators....
</EditItemTemplate>
으로 이것을 가지고 -1
이제 문제는 내가 내 편집 버튼을 클릭하면 ... 제공의 <EditItem>
는하지만 모든 "NULL"값 (텍스트 상자 등으로) 표시가 표시됩니다
는 그래도 난 내가 텍스트 상자에 배치되는 값 포맷 다음을 수행 할 수 :
<EditItemTemplate>
<asp:textbox ID="txtPC" runat="server" Text='<%# FormatIntegerToText(Bind("PitchCount")) %>' width="25" Columns="2"></asp:textbox>
을하지만이 작업을 수행 할 때 나는 바인딩은 인식 기능 아니라고 컴파일 오류가 발생합니다.
내 질문은 이것이 허용되지 않는 이유는 무엇이며 어떻게 해결할 수 있습니까?