DistallViewコントロールでチェックボックスにバインディングするときにdbnullをブール値に変換する
-
29-10-2019 - |
質問
これはちょっとばかげていますが、SQLDATASOURCEを使用してデータベースのレコードにバインドする詳細なビューがあります。私の問題は、私が拘束しているフィールドは、現在ヌルを許可するビットフィールド(i、e 1または0)であることです。これは変更する必要があることを認識していますが、値がdbnullの場合、チェックボックスのチェックされたプロパティを「false」に自動的に設定するようにアプリケーションが自動的に認識できるように、GUI側のdbnullを処理できる必要があります。現在、私のテンプレートフィールドはこのように見えます。
</asp:TemplateField>
<asp:TemplateField HeaderText="Car:" HeaderStyle-Width="15%" ItemStyle-Width="85%">
<ItemTemplate>
<asp:Label ID="lblIsCar" runat="server" Text='<%# Eval("isCar") %>' />
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox ID="ckIsCar" runat="server" Checked='<%# Convert.ToBoolean(Eval("isCar"))%>' />
</EditItemTemplate>
</asp:TemplateField>
ビューモードではすべて正常に動作しますが、詳細ビューコントロールの編集リンクをクリックすると、次のエラーが表示されます。
オブジェクトは、dbnullから他のタイプにキャストすることはできません。
助言がありますか?
アップデート:
詳細ビューが選択したレコードの更新を実行するため、eval()の代わりにbind()を介して2つの方法バインディングを使用する必要があります。 convert.toboolean()を使用すると、バインドされた例外がキャストされます。チェックボックスフィールドを使用することになります。これを処理する簡単な方法があると思うでしょうが、私は不運なインフを見つけています。
正しい解決策はありません
所属していません StackOverflow