你的要求应该是用javascript实现,但是datagrid服务器控件,不刷新怎么能改变颜色?
可以刷新的话就好做一些,可以用datagrid的selectedchange事件,然后在绑定数据的时候设定颜色,我的想法.

解决方案 »

  1.   

    Dim item As DataGridItem    '表示 DataGrid控件中的项(行)
       
    For Each item In  mainGrid.Items
       
    Dim ISCheck As CheckBox
      
    ISCheck = Item.FindControl("是否")

    if ISCheck.Checked then

    加入改变颜色代码
      
    End If

    Next item
      

  2.   

    要改变颜色是可以的,但不刷新页面只能用javascript等脚本语言了。
    那样的话,还不如用js直接操作table来方便。
      

  3.   

    给你写一个示例,自己运行后看看:test.aspx
    ------------------------------------
    <%@Page debug=true%>
    <%@Import Namespace="System.Data"%>
    <%@Import Namespace="System.IO"%>
    <script language="C#" runat="server">
    void Page_Load(object src,EventArgs e){
    DataTable table=new DataTable();
    table.Columns.Add(new DataColumn("addr",typeof(string)));
    table.Columns.Add(new DataColumn("name",typeof(string)));
    DataRow row;
    for(int i=0;i<10;i++){
    row=table.NewRow();
    if(i%3==0)
    row["addr"]=null;
    else
    row["addr"]="addr "+i.ToString();
    row["name"]="name "+i.ToString();
    table.Rows.Add(row);
    }
    grid.DataSource=table;
    grid.DataBind();
    }void BindAddr(object src,DataGridItemEventArgs e){
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
    CheckBox box=(CheckBox)e.Item.FindControl("checkbox1");
    if(box!=null){
    string index=(e.Item.ItemIndex+1).ToString();
    string gridid=grid.ClientID;
    box.Attributes.Add("onclick","if(this.children[0].checked)document.all."+gridid+".rows["+index+"].style.backgroundColor=\'#969696\';else{document.all."+gridid+".rows["+index+"].style.backgroundColor=\'#ffffff\';}");
    }
    }
    }
    </script>
    <HTML><HEAD>
    <TITLE> Webdiyer 制造:) (www.webdiyer.com) </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="Webdiyer">
    </HEAD><BODY>
    <form runat="server">
    <asp:DataGrid runat="server" id="grid" autogenerateColumns=false OnItemDataBound="BindAddr" width="300">
    <Columns>
    <asp:HyperLinkColumn runat="server" DataTextField="name" DataNavigateUrlField="name" DataNavigateUrlFormatString="test.aspx?id={0}" HeaderText="链接"/>
    <asp:TemplateColumn HeaderText="改变颜色">
    <ItemTemplate>
    <asp:CheckBox runat="server" id="checkbox1"/>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
    </form></BODY></HTML>
      

  4.   

    webdiyer(陕北吴旗娃):谢谢你!一个小改动:if(this.checked)