- PR -

Repeaterのラジオボタンのイベント

1
投稿者投稿内容
キョウ
常連さん
会議室デビュー日: 2003/04/30
投稿数: 49
投稿日時: 2003-07-16 21:27
ASP.NETをC#で開発しています。開発環境はVS.NET2002です。

Repeaterにラジオボタンをテンプレートに載せています。
選択された時点でポストバックを発生させたいと考えております。
AutoPostBackをtrueにした時点で、ポストバック自体は起せるのですが、
このイベントを取得する事ができません。

Repeater以外の場所においてあれば、OnCheckedChangedイベントを
取得できるのですが、Repeater内ではこのイベントの記述ができません。
また、ボタンのようにCommandNameプロパティの設定ができないので、
RepeaterのItemCommandイベントでの取得もできません。

どうしたらラジオボタンのチェックのイベントが拾えるのでしょうか?

それとも、DataGridなどにasp:RadioButtonを置いても複数選択できて
しまうという問題(http://support.microsoft.com/default.aspx?scid=kb;ja;JP316495)
とかを考えると、バインド系のコントロールにRadioButtonを置くというのが
ASP.NETには不向きなのでしょうか?

#この問題、Framework1.1で解決されていませんよね?解決されている
#のであれば、実行環境の見直しとかを提案しようとも思うのですが。

すみませんが、よろしくお願いします。
ウーロン
会議室デビュー日: 2003/07/29
投稿数: 10
投稿日時: 2003-07-30 10:45
キョウさん、こんにちわ。

Repeater上のラジオボタンのイベントを拾うにはaspxファイル側と
csファイル側の両方に記述する必要があります。
以下にサンプルを載せておきます。

<aspxファイル側>
<asp:RadioButton id="rdoId1" GroupName="rdoSelect" Runat="server" AutoPostBack="true" OnCheckedChanged="Radio_chage"></asp:RadioButton>

<csファイル側>
public void Radio_chage(object sender, System.EventArgs e)
{
  RadioButton selectRadio = (RadioButton)sender;
}

これで大丈夫だと思います。
キョウ
常連さん
会議室デビュー日: 2003/04/30
投稿数: 49
投稿日時: 2003-07-31 10:36
できました!ありがとうございます。

#これまでは、クライアント側のJavaScriptでどのラジオボタンを選択したかを隠しテキストにいれて
#その後、submitしていました。これでソースが格段にきれいになりました。
1

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