在datagrid ItemCreate中
if(e.Item.ItemType == ListItemType.Header)
{
if(true)//如果允许改变列宽
{
for(int i=0;i<e.Item.Cells.Count;i++)
{
e.Item.Cells[i].Attributes.Add("onmousemove","SyDG_moveOnTd(this)");
e.Item.Cells[i].Attributes.Add("onmousedown","SyDG_downOnTd(this)");
e.Item.Cells[i].Attributes.Add("onmouseup","this.mouseDown=false");
e.Item.Cells[i].Attributes.Add("onmouseout","this.mouseDown=false");
}
}.aspx中
  //鼠标拉动列宽
                 function SyDG_moveOnTd(td)
{
if(event.offsetX>td.offsetWidth-10)
td.style.cursor='w-resize';
else
td.style.cursor='default';
if(td.mouseDown!=null && td.mouseDown==true)
{
if(td.oldWidth+(event.x-td.oldX)>0)
td.width=td.oldWidth+(event.x-td.oldX);
td.style.width=td.width;
td.style.cursor='w-resize';

table=td;
while(table.tagName!='TABLE') table=table.parentElement;
table.width=td.tableWidth+(td.offsetWidth-td.oldWidth);table.style.width=table.width;
}
}
function SyDG_downOnTd(td)
{
if(event.offsetX>td.offsetWidth-10)
{
td.mouseDown=true;
td.oldX=event.x;
td.oldWidth=td.offsetWidth;
table=td;while(table.tagName!='TABLE')table=table.parentElement;
td.tableWidth=table.offsetWidth;
}
}使用意见 还不是很好用原来是为高手写的 (期待有人能再改进)