try<%@ Page Language="C#" %>
<%@ import Namespace="System.Data" %>
<%@ import Namespace="System.Data.SqlClient" %>
<script runat="server">
    void Page_Load(object o, EventArgs e)
         {
           if (!IsPostBack)
           {
            SqlDataAdapter da = new SqlDataAdapter("select * from authors",
                              "server=localhost;database=pubs;uid=sa;pwd=;");
    
            DataTable dt = new DataTable();
            da.Fill(dt);
    
            DataGrid1.DataSource = dt.DefaultView;
            DataGrid1.DataBind();
          }
         }</script>
<html>
<head>
</head>
<body>
    <form id="form1" runat="server">
        <asp:DataGrid id="DataGrid1" runat="server">
            <Columns>
                <asp:TemplateColumn HeaderText="CheckBox">
                    <ItemTemplate>
                        <asp:CheckBox id="Remove" runat="server" onclick="ChangeColor()" />
                    </ItemTemplate>
                </asp:TemplateColumn>
                <asp:TemplateColumn HeaderText="CheckBox">
                    <ItemTemplate>
                        <asp:Label id="DelID" runat="server" text='<%# DataBinder.Eval(Container.DataItem,"au_id")%>' /> 
                    </ItemTemplate>
                </asp:TemplateColumn>
            </Columns>
        </asp:DataGrid>
    </form>
    <script language="javascript">
function GetRow(e)
{
 while (e != null && e.tagName != "TR")
      e = e.parentElement; return e;
}function ChangeColor()
{
  var chk = event.srcElement;
  var e = GetRow(chk);
  if (e != null && e.tagName == "TR")
  {
e.style.backgroundColor = chk.checked? "red": "";
  //for(var i=0; i< e.all.length; i++)
//e.all[i].style.backgroundColor = chk.checked? "red": "";
  }
}</script>
</body>
</html>

解决方案 »

  1.   

    关键是客户端的js代码,在其中由checkbox在客户端生成的input的onclick事件触发一个函数控制相应记录单元格的底色变化
    由于asp.net服务器端控件无法在设计时的html代码里添加客户端事件,因此你必须在服务器端生成并注册客户端的控制脚本思归的方法:<asp:CheckBox id="Remove" runat="server" onclick="ChangeColor()" />
    是无效的必须在服务器端代码里,使用
    Checkbox1.Attributes.Add("OnClick", "JavaScript:ChangeColor()");
    才行
      

  2.   

    使用不同样式,然后在选中CheckBox时,重新指定TR的CSSClass即可。另外直接使用DataGrid的属性也可。
      

  3.   

    >>>思归的方法是无效的uno(钢盅郭子), have you tried my code?
      

  4.   

    try
    <Input type="Checkbox" onclick="this.bgcolor=\"#000000\"">
      

  5.   

    我用过很多次啊
    原来还不了解个种道理
    看了msdn才明白的
    <asp:xxx >都不能直接添加客户端事件脚本
    html控件可以
      

  6.   

    个中道理打错了:P正确方法就是
    WebControl.Attributes.Add(事件, 脚本);