- PR -

DataGridのテンプレートに埋め込んだImageをソースから変更したい

1
投稿者投稿内容
たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2003-09-05 17:50
DDataGridには通常の列のほかに、Imageを表示させるために、テンプレート列を作り、そこにImageを入れてあります。Imageでは
-------------------------------------------------------------
(DataBinder.Eval(Container, "DataItem.SIJI_CD")==DBNull.Value ? "./image/setup_b_03.gif" ataBinder.Eval(Container, "DataItem.SIJI_CD", "./image/setup_b_0{0}.gif"))
-------------------------------------------------------------
と、連結式が書いてあります。これにより、データの値により、表示させるImageを変更しています。

で、ここからが困っていることです。

普通に表示される項目では、ソース側で、DataBind後に
dataGrid.Items[index].Cells[index].Text = "任意のデータ"
と行うことで、任意のところの表示されるデータを変えています。

しかしながら、これではテンプレートの中のImageを変更することができません。

DataGridのテンプレート列の中にある、Imageをソース側から変更する方法を
教えていただければと思います。
ぴで
大ベテラン
会議室デビュー日: 2002/10/10
投稿数: 123
お住まい・勤務地: 東京
投稿日時: 2003-09-06 11:41
imgをサーバコントロールとすることで変更できます。
コード:
<asp:templatecolumn><itemtemplate>
<img id="imgIcon" runat="server" src><%# .... %> />
</itemtemplate></asp:templatecolumn>

((System.Web.UI.HtmlControls.HtmlImage)grid.Items[index]
  .FindControl("imgIcon")).Src = "ico.gif";

たけくん
ベテラン
会議室デビュー日: 2003/08/19
投稿数: 63
投稿日時: 2003-09-08 10:00
ぴでさん、ご教授ありがとうございます。
(ぴでさんにはいろいろ教えていただいておりますありがとうございます(^.^))
早速実行してみました。そして補足を付け加えたいと思います。

ぴでさんに教えていただいたものをそのまま実行してもキャストエラーが出る場合があります。この場合はWebコントロールとHTMLのサーバーコントロールの違いです。
Webコントロールの場合は

((System.Web.UI.WebControls.Image)grid.Items[index].FindControl("imgIcon")).ImageUrl = "ico.gif";

と書きます。
1

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