- PR -

クライアント側での処理

1
投稿者投稿内容
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2002-12-22 16:08
今日は

RadioButtonList1の選択された状態に応じてクライアント側で処理を行いたく
下記のようなスクリプトを書き出したのですが選択された状態をどうすれば
判断できるのかわかりません。


function myRadio()
{
  var m_RBlist = this.document.getElementById('RadioButtonList1');
  var m_list1 = this.document.getElementById('DropDownList1');
  var m_list2 = this.document.getElementById('DropDownList2');
var m_list3 = this.document.getElementById('DropDownList3');
  
RadioButtonList1の選択状態に応じて
     m_list1.style.visibility="hidden";
のようにいくつかのコントロールの表示を切り替えたい

}
// -->
</script>

省略

<asp:RadioButtonList id="RadioButtonList1" onClick="myRadio()" style="Z-INDEX: 101; LEFT: 192px; POSITION: absolute; TOP: 208px" runat="server" Width="128px">
<asp:ListItem Value="a" Selected="True">a</asp:ListItem>
<asp:ListItem Value="b">b</asp:ListItem>
<asp:ListItem Value="d">d</asp:ListItem>
</asp:RadioButtonList>


PostBackさせてサーバー側で処理してもよいのですが、クライアント側でしたいので
どなたかお分かりでしたらご教示ください。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2002-12-24 13:39
asp:RadioButtonListでクライアントコード書くのは、無理っぽい気がします。
(案1)素直にサーバサイドにする。
(案2)HTMLコントロールで書く。
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2002-12-24 15:31
引用:

catsさんの書き込み (2002-12-24 13:39) より:
asp:RadioButtonListでクライアントコード書くのは、無理っぽい気がします。
(案1)素直にサーバサイドにする。
(案2)HTMLコントロールで書く。




catsさんコメント有難うございます

>素直にサーバサイドにする。

とりあえずこれでいきます。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2002-12-25 10:03
すいません、できました
コード:
<%@ page language="C#" debug="true" %>
<html><head>
<script language="javascript">
function check(src,args)
{
  for (i=1;i<=3;++i)
    document.getElementById("Button"+i).style.visibility="hidden";
  document.getElementById(args.Value).style.visibility="visible";
  args.IsValid=true;
}
</script>
<title>ASP.NET test</title></head>
<body>
<form runat=server>
<asp:RadioButtonList id="RadioButtonList1" runat="server">
  <asp:ListItem Value="Button1">1</asp:ListItem>
  <asp:ListItem Value="Button2">2</asp:ListItem>
  <asp:ListItem Value="Button3">3</asp:ListItem>
</asp:RadioButtonList>
<asp:Button id="Button1" runat="server" Text="Button1" />
<asp:Button id="Button2" runat="server" Text="Button2" />
<asp:Button id="Button3" runat="server" Text="Button3" />
<asp:CustomValidator id="CustomValidator1" runat="server" ErrorMessage="CustomValidator"
 ClientValidationFunction="check" ControlToValidate="RadioButtonList1" Display="None" />
</form></body></html>


ミソは、asp:CustomValidatorを使うところです。
(asp:RadioButtonListがtableタグに変換されていたので、始めは無理かと思いました。)
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2002-12-25 11:36
cats さん有難うございます。

>ミソは、asp:CustomValidatorを使うところです。

すばらしいです、とても!
他にも応用できそうです、自分でもいろいろやってみます。

1つだけ質問させてください
>args.IsValid=true;
これは何をしているのですか?
申し訳ありませんよろしくお願いします。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2002-12-25 11:56
引用:

>args.IsValid=true;
これは何をしているのですか?


検証結果を設定している部分です。
ValidatorをDisplay="None"にしているので不要かと思ったのですが、書かないと次ページに進まなくなったりするかも。

[ メッセージ編集済み 編集者: cats 編集日時 2002-12-25 12:03 ]
tabou
常連さん
会議室デビュー日: 2002/07/15
投稿数: 39
投稿日時: 2002-12-25 14:34
cats さん有難うございます。

検証コントロールのこういう使い方が出来る事、
おおいに勉強になりました。
1

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