- PR -

Template列への値のセット

1
投稿者投稿内容
DCPRG
会議室デビュー日: 2004/09/06
投稿数: 15
投稿日時: 2005-04-06 23:17
いつもお世話になっております。

ASP.NETのDataGridのテンプレート列に、値をセットさせる
事は可能でしょうか?

<ItemTemplate>
<asp:Label ID="lbl_KIN" Runat="server">
<%# SetRound(DataBinder.Eval(Container.DataItem, "KIN")) %>
</asp:Label>
</ItemTemplate>

DBのテーブルからKIN列の値を取得し、それをSetRoundという自作関数で
処理後表示するという仕掛けですが、
DataGridのItemDataBoundイベントである条件の場合は、このテンプレート列に、
前述の値ではなくて、別の値を表示させたいのです。
何かよい方法等ご存知でしたらご教示お願い致します。
SE卵
大ベテラン
会議室デビュー日: 2004/10/22
投稿数: 135
投稿日時: 2005-04-07 09:06
こんにちは。


こんなんでどうでしょう?

コード:
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

    Dim lblKIN As Label

    If ((e.Item.ItemType = ListItemType.EditItem) Or (e.Item.ItemType = ListItemType.AlternatingItem) Or (e.Item.ItemType = ListItemType.Item)) Then
        lblKIN = CType(e.Item.FindControl("lbl_KIN"), Label)
        lblKIN.Text = SetRound(lblKIN.Text)
    End If

End Sub

DCPRG
会議室デビュー日: 2004/09/06
投稿数: 15
投稿日時: 2005-04-07 20:34
ご回答有り難うございました。
ご教示頂いた方法で実現する事が出来ました。

お忙しい所有り難うございました。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-04-08 08:43
これって、条件によっては
SetKin のかわりに
・ある条件では 何かを返す
・それ以外のときは SetKin を呼び、それを返す
というメソッドを作って呼べばいいような気がします。

ItemDataBound で e.Item を使って判断しているというなら
上記メソッドに Container.DataItem を渡せばいいんだし。
1

スキルアップ/キャリアアップ(JOB@IT)