- PR -

DataGridの行選択

1
投稿者投稿内容
7年目
常連さん
会議室デビュー日: 2005/04/28
投稿数: 21
投稿日時: 2005-06-29 15:48
いつもお世話になっております。

ASP.NETにおいて、<asp:datagrid>を使用しています。
選択した行を反転させたいと思っているのですが、

HTML言語だと以下の様にTABLEの行選択を実現できることはわかったのですが、
------------------------------------
<html><body>
<script language="Javascript">
function Click_TR() {
  if (obj.style.backgroundColor=='blue') {
    obj.style.backgroundColor='white'
  } else {
    obj.style.backgroundColor='blue'
  }
}
</script>

<table border=1 width=100%>
<tr onclick="Click_TR(this)"><td>あああああ
<tr onclick="Click_TR(this)"><td>いいいいい
</table>
</body></html>
------------------------------------

DataGridを使用して上での代替方法が見つかりません。
どなたかご存知の方が折られましたら、ご教授いただけないでしょうか?

よろしくお願いいたします。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-06-29 15:57
引用:

未記入さんの書き込み (2005-06-29 15:48) より:
いつもお世話になっております。

ASP.NETにおいて、<asp:datagrid>を使用しています。
選択した行を反転させたいと思っているのですが、

HTML言語だと以下の様にTABLEの行選択を実現できることはわかったのですが、
------------------------------------
<html><body>
<script language="Javascript">
function Click_TR() {
  if (obj.style.backgroundColor=='blue') {
    obj.style.backgroundColor='white'
  } else {
    obj.style.backgroundColor='blue'
  }
}
</script>

<table border=1 width=100%>
<tr onclick="Click_TR(this)"><td>あああああ
<tr onclick="Click_TR(this)"><td>いいいいい
</table>
</body></html>
------------------------------------

DataGridを使用して上での代替方法が見つかりません。
どなたかご存知の方が折られましたら、ご教授いただけないでしょうか?

よろしくお願いいたします。




NAL-6295です。

MSDNでDataGridの項を見れば分かると思いますが・・・

SelectedIndex
SelectedItemStyle

あたりを参考にしてください。
_________________
「伝える」とは「人に云う」と書く。
http://d.hatena.ne.jp/NAL-6295/
7年目
常連さん
会議室デビュー日: 2005/04/28
投稿数: 21
投稿日時: 2005-06-29 16:19
お返事ありがとうございます。
ヘルプを参考にして、
現在は、<AlternatingItemStyle>と<ItemStyle>を使用して、
交互に行の背景色を変更することはできているのですが、
同じような感じで、<SelectedItemStyle>を設定したのですが反映されません。

SelectedIndexを使用しなければいけないのかどうか、よく分かりませんが、
<SelectedItemStyle>を使用する際は、他に設定するプロパティなどあるのでしょうか?

着色の優先順位をみても、問題ないように思いました。

サーバー側でSelectedIndexを設定すれば色は変更されるのですが、
クライアント(JavaScript)だけで実現はできないものでしょうか。

どうか、よろしくお願いいたします。
-------------------------------------------------------------
<DIV style="OVERFLOW: auto; WIDTH: 950px; HEIGHT: 385px" ms_positioning="FlowLayout">
<asp:datagrid id="dgabcdefg" runat="server" AutoGenerateColumns="False" OnPageIndexChanged="Page_Change" AllowPaging="True" PageSize="10" Font-Size="9pt" Font-Names="MS ゴシック">

<AlternatingItemStyle ForeColor="Black" BackColor="Beige"></AlternatingItemStyle>

<ItemStyle ForeColor="Black" BackColor="#CCCCFF"></ItemStyle>

<SelectedItemStyle BackColor="yellow"></SelectedItemStyle>

<Columns>
<asp:BoundColumn DataField="JYHNO" HeaderText="生年月日">
<HeaderStyle Wrap="False" HorizontalAlign="Left" Width="80px">
</HeaderStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="URINO" HeaderText="氏名">
<HeaderStyle Wrap="False" HorizontalAlign="Left" Width="70px">
</HeaderStyle>
</asp:BoundColumn>
</Columns>

<PagerStyle></PagerStyle>
</asp:datagrid>
</DIV>

[ メッセージ編集済み 編集者: WEB初心者 編集日時 2005-06-29 17:00 ]
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2005-06-29 17:54
[ASP.NET]DataGridコントロールに選択ボタンを追加するには?
.NET TIPS
などを参考にしては如何でしょう。

[追記]
あっ、クライアントスクリプトでしたか。
であれば、ItemDataBound時にJavaScriptを埋め込むとか

[ メッセージ編集済み 編集者: えんぞ@? 編集日時 2005-06-29 18:00 ]
todo
ぬし
会議室デビュー日: 2003/07/23
投稿数: 682
投稿日時: 2005-06-29 18:10
引用:

えんぞ@?さんの書き込み (2005-06-29 17:54) より:
あっ、クライアントスクリプトでしたか。
であれば、ItemDataBound時にJavaScriptを埋め込むとか



そのサンプル
http://www.atmarkit.co.jp/fdotnet/dotnettips/075onmousedg/onmousedg.html
えんぞ@?
ぬし
会議室デビュー日: 2004/07/06
投稿数: 271
お住まい・勤務地: はまっこ
投稿日時: 2005-06-29 18:27
自分の回答に納得いかなかったので...、なんとなくこんな感じなんかな。
--------------------
function Click_TR(obj) {
  if (obj.parentNode.parentNode.style.backgroundColor=='blue') {
    obj.parentNode.parentNode.style.backgroundColor='white'
  } else {
    obj.parentNode.parentNode.style.backgroundColor='blue'
  }
}
--------------------
<asp:DataGrid ID="DataGrid1" Runat="server">
  <Columns>
   <asp:TemplateColumn>
    <ItemTemplate>
      <input type="button" id="button1" onclick="JavaScript:Click_TR(this);" value="button">
    </ItemTemplate>
   </asp:TemplateColumn>
  </Columns>
</asp:DataGrid>
--------------------
# ちなみに、JavaScriptのparentNodeはブラウザによっては対応可否があるので適用するかどうかはご自分の判断にて
1

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