c#
  • asp.net
  • detailsview
  • 2011-12-02 8 views 2 likes 
    2

    は、もともと私はそれのCheckBoxをTemplateFieldを持っていたが、私はそれが無効なキャスト例外をスローままDetailsView内のCheckboxFieldからChecked状態を抽出することはできますか?

    Checked='<%# (bool)Bind("FieldName") %> 
    

    または

    Checked='<%# (bool)Eval("FieldName") %> 
    

    を使用して、チェックボックスの値を設定することができませんでした。データベース内のフィールドはビットフィールドが1または0に設定されています。

    私はチェックボックスフィールドに切り替えようとしましたが、データソースのupdatecommandパラメータを使用するのではなく、コードビハインドになっていますビジネスロジックに渡すためにCheckBoxFieldから値を取得します。

    DetailsviewのCheckBoxフィールドから値を取得する方法を教えてもらえますか?

    答えて

    1

    intからboolにキャストできません。試してください。Convert.ToBoolean(Eval("FieldName"))Evalを使用できるかどうかは不明ですが、それは一般的な考えです。

    1

    私はあなたが次に設定

    CheckBox ckBox = ucDetailView.FindControl("CheckBoxID") as CheckBox 
    if(ckBox != null){ 
        ckBox.Checked = (bool)datasource["FieldName"].ToString() 
        //.. or some better casting code with more null checks 
    } 
    

    を使用することができます1または0

    0

    、あなたはHTMLがTrueまたはFalseを探しているので、データベースからの値にToString()を使用する必要があるということではないと思いますそれはコードの背後にあります。ソリューションはうまくいったようです。here

    +0

    私は元々このようなものを持っていましたが、代わりにchecboxfieldを利用していました。しかし、私が上記で受け入れた提案がうまくいったので、あなたが言及したこの方法を使い続けることができます。 – gsirianni

    関連する問題