私はasp.net 2.0でGridViewを使用しており、インライン編集を実行したいと思います。私はオブジェクトのデータソースを使用しています。グリッドビューの整数フィールドに検証コントロールを使用したいので、それらを<TemplateFields>
にし、データ型バリデーターと範囲バリデーターを追加しました。これにより空白のフィールド、または0〜999の整数値を持つことができます。ASP.NET - GridView - EditItem - 整数のNull値?
プロパティの値が定義されていない場合は、 " - "を表示しようとしています。整数にはNullはありませんので、-1を値として使用してNullを示すことにしました。
値が-1の場合、 " - "を表示するように再フォーマットしています。このすべてが素晴らしい作品
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
:私の背後にあるコードで
<ItemTemplate>
<asp:Label ID="lblPC" runat="server" Text='<%# FormatIntegerToText(Eval("PitchCount"),"-") %>'></asp:Label>
</ItemTemplate>
は、次のようにFormatIntegerToText機能を定義している:私はとしては、以下のことを行います。さて問題は、私は私の[編集]ボタンをクリックしたときに、私は現在、私の<EditItemTemplate>
<EditItemTemplate>
<asp:textbox ID="txtPC" runat="server" Text='<%# Bind("PitchCount") %>' width="25" Columns="2"></asp:textbox>
....a couple of validators....
</EditItemTemplate>
としてこれを持って
<EditItem>
が(テキストボックスなどに)表示されますが、すべての「ヌル」値は以下のように-1
表示されます...来ます
I Iは、テキストボックス内に配置されている値再フォーマットするには、以下のことができないにもかかわらず:
<EditItemTemplate>
<asp:textbox ID="txtPC" runat="server" Text='<%# FormatIntegerToText(Bind("PitchCount")) %>' width="25" Columns="2"></asp:textbox>
を私はこれを行うとき、私はバインドが認識機能ではありません、コンパイルエラーが発生します。
私の質問は、なぜ許可されていないのですか、どうすれば回避できますか?