DistallViewコントロールでチェックボックスにバインディングするときにdbnullをブール値に変換する

StackOverflow https://stackoverflow.com/questions/8421053

質問

これはちょっとばかげていますが、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()を使用すると、バインドされた例外がキャストされます。チェックボックスフィールドを使用することになります。これを処理する簡単な方法があると思うでしょうが、私は不運なインフを見つけています。

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top