html
  • asp.net
  • 2016-06-23 8 views 0 likes 
    0

    エンティティフレームワークからデータを読み込み、ASP.NETページ(ASPX)のリピータをバインドします。 「Enum.TryParseをASP.Netページのマークアップで使用できますか

    <owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType" 
            Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), Convert.ToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' /> 
    

    ユーザーが例ごとに表示したくないためです。 私のフィールドの1つ - - iFieldTypeはそのようなページのマークアップで列挙の項目に解析される整数値が含まれています1 "が、フィールドタイプ" TextBox "の名前です。残念ながらiFieldTypeNULLとなります。 だから私はEnum.ParseEnum.TryParseに置き換えなければならない。 これはマークアップ/ htmlで行うことができますか?

    +0

    「TryParse」を実行する変換クラスを作成し、文字列を返すことがあります。 –

    +0

    ヒントありがとう!これは正しい方法で私を押してくれました。 –

    +0

    :)私の喜び..幸運.. –

    答えて

    0

    少なくとも2つの解決策があります。

    A)私たちは、ページのコードビハインドで、tryparseを行うpublic(!)メソッドをプログラムできます。例えば、パー

    <owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType" 
        Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), FieldTypeTryParseToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' /> 
    

    B)我々はあまりにもマークアップでそれを行うことができますが、それはコードがより複雑になります。

    public string FieldTypeTryParseToString(object value) 
    { 
        if (value == null) 
        { 
         return "0"; 
        } 
    
        return value.ToString(); 
    } 
    

    が続いてマークアップで、我々は新しいメソッドを実装します。この場合、値がnullかどうかを確認します。

    <owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType" 
        Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), DataBinder.Eval(Container.DataItem, "iFieldType") == null ? "0" : Convert.ToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' /> 
    
    関連する問題