2009-09-03 1 views
0

私のデータテーブルの列名を使用して、gridfieldのバインドされた列をdatafieldにバインドします。問題は、データフィールドが値0のint型のテキストに配置する必要があるというシナリオがあることです。私は何も回避できませんでした。これを行う簡単な方法はありますか?あなたはダビデが作る示唆しているように、あなたのASPXページにインラインコードを使用することを好まない場合は私のデータテーブルの列名を使用して、gridviewのバインドされた列datafieldをバインドする問題

<ItemTemplate> 
    <%# MyConversionFunction(Convert.ToInt32(DataBinder.Eval(Container.DataItem, "IntegerFieldName"))) %> 
</ItemTemplate> 

protected string MyConversionFunction(int ValueToCheck) 
{ 
    if(ValueToCheck.ToString() == "0") 
    { 
     return "SomeText"; 
    } 
    else 
    { 
     return SomeValue.ToString(); 
    } 
} 

答えて

2

:これはASP.Netであれば

0

することは、あなたがこのテンプレート列を作成し、次の操作を行うことができますその中にリテラルコントロールをテンプレートとOnDataBindingイベントを実装:あなたのグリッドの例では

があなたのフィールドに次のテンプレートがあります。

<asp:TemplateField HeaderText="Your Header Name"> 
    <ItemTemplate> 
     <asp:Literal runat="server" ID="litYourCustomField" OnDataBinding="litYourCustumField_DataBinding"></asp:Label> 
    </ItemTemplate> 
</asp:TemplateField> 

を次に、恩田を実装しますあなたのコードの背後にあるコードでtaBinding:

私はこのメソッドをインラインコードはあなたのaspxページにコードを入れないので、このメソッドを好む。私は通常、すべてのデータバインディングコードを持つ私の.csファイルで定義された#regionを持っています。私は、あなたがviewstateを有効にしている場合には、リテラルコントロールのオーバーヘッドを除いて、ほとんど同じであることをパフォーマンスが賢明であると確信しています。ビューステートを必要としないときは必ずオフにしてください。

関連する問題