0

コードビハインド(ロード時のvb.net)でラジオボタンのロードを動的に作成していて、それらにイベントを作成する方法を考えています。2つの列を持つグリッドビューがあり、各行には、グループに含まれる両方の列にラジオボタンがあります(fyiグループは、一方をチェックし、もう一方をチェックしないことを意味します)。チェックした方の背景色を黄色に変更したい。これをどのように行うのが最善でしょうか?Javascript(すべてのラジオボタン変更イ​​ベントをキャッチ)、JQuery(すべてのラジオボタン変更イ​​ベントをキャッチ)、またはVb.net(作成時にメソッドをアタッチ)?これが私がそれらを作成する方法です。

Dim r As RadioButton
    Dim l As Label
    Dim radioBtnNumber As Integer = 0
    For row As Integer = 0 To GridView1.Rows.Count - 1
        If GridView1.Rows(row).RowType = DataControlRowType.DataRow Then
            Dim x As Integer = 0
            For Each tc As TableCell In GridView1.Rows(row).Cells
                l = New Label()
                l.Text = tc.Text
                If (x = 1) Or (x = 2) Then
                    r = New RadioButton()
                    r.GroupName = String.Format("RdBtnGroup{0}", row)
                    r.ID = radioBtnNumber.ToString
                    //Could add in event here. Tried this but didn't work
                    //r.Attributes.Add("OnCheckedChanged", "radiobuttonChecked()")
                    tc.Controls.Add(r)
                    radioBtnNumber = radioBtnNumber + 1
                End If
                tc.Controls.Add(l)
                x = x + 1
            Next
        End If
    Next

そのコードは、実際にはグリッドビューが実際に反転しているため(水平ではなく垂直)であるため、より混乱します。したがって、0、1、2、3、4などの名前のラジオボタンがあり、グループに0と1、グループに2と3などがあり、どちらが変更されたかを確認したいだけです。ただし、RBの名前またはグリッドビュー内の位置が必要であることに注意してください。これは、ペアになっているRBの背景色も変更する必要があるためです。

4

1 に答える 1

0

行を追加します(コードはC#、VBに変換):

r.CheckedChanged += new System.EventHandler(this.radiobuttonChecked);

を作成するときRadioButtonradiobuttonCheckedあなたのウェブページの方法である必要があります:

protected void radiobuttonChecked(Object sender, EventArgs e)
{
...
}

ここで、送信者をキャストしてRadioButtonそのプロパティを分析できます。これにより、サーバーへのポストバックが発生し、ラジオボタンを変更できます。

クライアントでそれを実行したい場合は、最初にCssClass(たとえば、「rbClass」)をそれらすべての同じ文字列に割り当て、さらに使用することができます。

r.Attributes.Add("pairName", "<name for the pair of radiobuttons>")

次に、JavaScriptをページに追加します。

$(document).ready(function(){
  $(".rbClass").change(function(){
    // here you look at $(this).attr and 
    // adjust its and its pair's css accordingly
  })
});
于 2012-08-21T16:49:58.140 に答える