0

データ ソース (データ テーブル オブジェクト) に接続されたデータ リピーターがあります。特定の条件下で特定の列のフロントエンドの出力を変更する必要があります。これを行う最も効率的な方法は何でしょうか?

現在、フォーマットされた出力を作成して別のデータテーブルに割り当て、それをデータ ソースとして使用しようとしていますが、非常に複雑で、維持するのが難しいようです。

データソースの列の値を操作する簡単な方法はありますか? ソースの前後の行をチェックする機能が必要です。これは、一部の列の値の基礎となるものです。

4

2 に答える 2

2

単純な操作について話している場合、DataBinder.Evalメソッドはフォーマット文字列を受け入れます。

<%#Eval("SomeMoneyColumn", "{0:C}")%>

フォーマット文字列が十分でない場合は、次のように、コード ビハインドでフォーマットを処理するメソッドを作成できます。

<%#FormatData(Eval("SomeColumn"))%>

コード ビハインド:

protected string FormatData(object data)
{
    return String.Format("My name is {0}", data);
}

ItemDataBoundイベントにもご利用いただけます。この手法を使用すると、操作にリピーターにバインドされた他のデータが含まれる場合でも、データソース オブジェクトにアクセスできます。

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    Label lblCtrl = e.Item.FindControl("SomeControl") as Label;
    if (lblCtrl != null)
    {
        lblCtrl.Text = String.Format("My name is {0}", DataBinder.Eval(e.Item.DataItem, "SomeColumn"));
    }
}
于 2011-10-03T19:51:09.827 に答える
0

現在行っているような特別なロジックを使用せずに、クライアント側で簡単にやりたいことを行う方法はないと思います。データベースからデータを取得している場合、DB 側ですべてのデータ操作を行い、それを透過的にフロントエンドに渡すことができます。

于 2011-10-03T19:57:49.800 に答える