我在datagrid1中嵌套了一列為checkbox,我想在選中checkbox后讓選中的行的背景色變為綠色,并且在第二個datagrid2中顯示出与第一個datagrid1中相關的資料(其實也就是主從表),然后在一個textbox中顯示出datagrid1中所選中行的第一列的值!在itemcommand事件中該怎么寫阿?急啊,請各位大蝦指導(VB)
 Sub datagrid1_itemcommand(ByVal sender As System.Object, ByVal e As DataGridItemcommandEventArgs) 
        Dim checkbox1 As New CheckBox
        checkbox1 = CType(DataGrid1.FindControl("#"), CheckBox)
        If checkbox1.Checked Then
            e.Item.BackColor = System.Drawing.Color.Green '執行后沒有反應
        End If
    End Sub

解决方案 »

  1.   

    在DataBound中写,
    可以做个单击事件
    System.Web.UI.WebControls.CheckBox chkExport; 
    chkExport=(CheckBox)e.Item.FindControl("chkExport");
    chkExport.Attributes.Add("OnClick","SetCheckBoxState('"+((Label)e.Item.FindControl("****")).Text+"')");
    <script>
    function SetCheckBoxState(ID)
         {
         var dom=document.all;
         var el=event.srcElement;
            if(el.tagName=="INPUT"&&el.type.toLowerCase()=="checkbox")
         {
      for(i=0;i<dom.length;i++)
      {
          if(dom[i].tagName=="INPUT"&&dom[i].type.toLowerCase()=="checkbox")
          {
       dom[i].checked=false;
          }
      }
         }
         el.checked=!el.checked;
     document.getElementById('*****').value=ID;        }
    </script>
      

  2.   

    我不懂JAVASCRIPT阿!不能在itemcommand或itemdatabound事件里面寫么??
      

  3.   

    在CheckBox中要添加一个服务器时间,每次点击触发一个事件
      

  4.   

    c#:
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType ==ListItemType.AlternatingItem)
       {
          CheckBox checkbox1=(CheckBox)e.Item.FindControl("checkbox");
          checkbox1.CheckedChanged +=new EventHandler(checkbox1_CheckedChanged);
       }
      

  5.   

    itemcommand事件好像只在DataGrid中的按钮才能触发
      

  6.   

    TO: coffeewar(苦咖啡)妳的這句checkbox1.CheckedChanged +=new EventHandler(checkbox1_CheckedChanged);我不明白.是不是還要自己再寫eventhandler的代碼阿,C#我不是太懂,我用VB的.
      

  7.   

    TO: coffeewar(苦咖啡)妳寫清楚點就可以了.我再慢點轉換成VB.主要是還要選中checkbox后要把datagrid1中的紀錄放到一個textbox里面去
      

  8.   

    试试:
    private void checkbox1_CheckedChanged(object sender, EventArgs e)
      {  
        CheckBox checkbox1=(CheckBox)sender;  
        DataGridItem item=(DataGridItem)checkbox1.parent.parent;
        textbox.Text=item.Cells[0].Text;
      }
      

  9.   

    Sub datagrid1_itemcommand(ByVal sender As System.Object, ByVal e As DataGridItemcommandEventArgs) 
            Dim checkbox1 As New CheckBox
            checkbox1 = CType(e.Item.FindControl("#"), CheckBox)
            If checkbox1.Checked Then
                e.Item.BackColor = System.Drawing.Color.Green '執行后沒有反應
            End If
        End Sube.Item.Findcontrol
      

  10.   

    vzxq(灵感人), showflow(深圳何時是我家), 還是不行哦!
    TO:coffeewar(苦咖啡),沒有反應
    Sub datagrid1_itemcommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs)
            If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.SelectedItem Then
                Dim checkbox1 As New CheckBox
                checkbox1 = CType(DataGrid1.FindControl("#"), CheckBox)
                'If Not (checkbox1 Is Nothing) Then 
                    If checkbox1.Checked = True Then
                        e.Item.BackColor = System.Drawing.Color.Green
                        TxtOrderNo.Text = e.Item.Cells(0).Text
                    End If
                'End If
            End If
        End Sub
      

  11.   

    这样应该没错吧,VB 不是很懂.
    bool类型的运算也是运一个 "=" 的吗,C#是这样的 "=="