估计难实现。
这种情况下就不要采用DATAGRID了。

解决方案 »

  1.   

    也不是不可以,不过你的灵活性很强的话建议自己写html代码输出。
    不然就在后台bounditem的时候做处理。。要么就用模板。
      

  2.   

    <%@ Import Namespace="System.IO" %>
    <script language="C#" runat="server">
    //..databind your datagrid in other methodprotected override void Render(HtmlTextWriter output)
    {
       StringWriter sw;
       HtmlTextWriter htmltw;
       sw = new StringWriter();
       htmltw = new HtmlTextWriter(sw);
       base.Render(htmltw);   String temp = sw.ToString();
       Regex re = new Regex(@"(<table.*?id=""MyDataGrid.*?>.*?<tr.*?>.*?</tr>)(.*?)(<tr.*?>.*?</tr>)(.*?)(<tr.*?>.*?</tr>.*?</table>)", RegexOptions.IgnoreCase | RegexOptions.Singleline);   //modify the temp any way you want
       temp = re.Replace(temp,"$1<ttable>$3</ttable>$5");
       
       //write it out
       output.Write(temp);
    }</script><form runat="server">
      <ASP:DataGrid id="MyDataGrid" runat="server">
      </asp:DataGrid>
    </form>
      

  3.   

    private void myDataGrid_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex < 0) return;
    e.Item.Attributes.Add("OnClick",Page.GetPostBackClientEvent(e.Item.Cells[0].Controls[0],String.Empty));
    e.Item.Attributes["onMouseOver"] = "javascript:this.bgColor='SteelBlue';";
    e.Item.Attributes["onMouseOut"] = "javascript:this.bgColor='green';";
    }运行后你可以看一下<tr>里的代码,呵呵