第一个问题可以这样:
private void dgProjTeamList_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#336699'");
e.Item.Attributes.Add("onmouseout","this.style.backgroundColor=currentcolor");

}
}

解决方案 »

  1.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD
      

  2.   

    在datagrid的ItemDataBound中给每row增加属性attribute.add("onmouseover", "你的js函数")
    第二个可能用panel或者div把datagrid包起来,滚动条是panel或者div的,表头就要自己写,对好格线很麻烦
      

  3.   

    给你个例子,照着写!
    private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
       for(int i = 0; i < DataGrid1.Items.Count; i++)
       {
          e.Item.Attributes.Add("onmouseover","currentcolor=this.style.backgroundColor;this.style.backgroundColor='#d4d0c8'");
          e.Item.Attributes.Add("onmouseout","currentcolor=this.style.backgroundColor=currentcolor");
       }
    }
      

  4.   

    写一个简单的例子,锁定表头暂时没有实现:test.aspx
    ------------------------------------------
    <%@Import Namespace="System.Data"%>
    <script language="C#" runat="server">void Page_Load(object src,EventArgs e){
    if(!Page.IsPostBack){
    DataTable table=new DataTable();
    table.Columns.Add(new DataColumn("first",typeof(string)));
    table.Columns.Add(new DataColumn("second",typeof(int)));
    table.Columns.Add(new DataColumn("third",typeof(bool)));
    DataRow row;
    for(int i=0;i<40;i++){
    row=table.NewRow();
    row[0]="这是第"+(i+1).ToString()+"条数据";
    row[1]=i;
    row[2]=(i%2==0)?true:false;
    table.Rows.Add(row);
    }
    dlist.DataSource=table;
    dlist.DataBind();
    }
    }void BindScript(object src,DataGridItemEventArgs e){
    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem){
    e.Item.Attributes.Add("style","cursor:hand");
    //e.Item.Attributes.Add("onclick",GetPostBackEventReference(e.Item.Cells[0].Controls[0]));
    e.Item.Attributes.Add("onmouseover","HandleMouseEvent(\'over\');");
    e.Item.Attributes.Add("onmouseout","HandleMouseEvent(\'out\');");
    e.Item.Attributes.Add("ondblclick","HandleMouseEvent(\'dblclick\');");
    }
    }
    </script>
    <HTML><HEAD>
    <TITLE> Webdiyer制造 :)(http://www.webdiyer.com) </TITLE>
    <META NAME="Generator" CONTENT="EditPlus">
    <META NAME="Author" CONTENT="Webdiyer">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function HandleMouseEvent(evt){
    var el=event.srcElement;
    if(el.tagName=="TD"&&el.parentElement.style.backgroundColor!="#666666"){
    switch(evt){
    case "over":
    el.parentElement.style.backgroundColor="#000066";
    el.parentElement.style.color="#ffffff";
    break;
    case "out":
    el.parentElement.style.backgroundColor="white";
    el.parentElement.style.color="#000000";
    break;
    case "dblclick":
    el.parentElement.style.backgroundColor="red";
    break;
    }
    }
    }
    //-->
    </SCRIPT>
    </HEAD><BODY>
    <form runat="server">
    <div style="width:100%;height:200px;overflow:auto">
    <asp:DataGrid runat="server" id="dlist" SelectedItemStyle-BackColor="#666666" Width=100% OnItemDataBound="BindScript">
    <headerStyle font-bold=true forecolor=red horizontalalign="center" backcolor="#889988"/>
    <Columns>
    <asp:ButtonColumn runat="server" CommandName="Select" Visible=false/>
    </Columns>
    </asp:DataGrid>
    </div>
    </form></BODY></HTML>
      

  5.   

    变色:
    Dim ii As Integer        Dim count1 As Integer = DataGrid1.Items.Count        For ii = 0 To count1 - 1            DataGrid1.Items(ii).Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#FFFFCC'")            DataGrid1.Items(ii).Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor")        Next
      

  6.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD