<ASP:TEMPLATECOLUMN>
<ITEMTEMPLATE>
<INPUT type="checkbox" name="chk1" >
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN><INPUT type="button" value="上移" onclick="javascript:GoMove(-1)">
<INPUT type="button" value="下移" onclick="javascript:GoMove(1)">
<SCRIPT language="javascript">
<!--
 function GoMove(iDirect)
 {
 
 var chks = document.getElementsByName("chk1");
 var tb = document.getElementById("DataGrid1");
 var newIndex ;
 for(var i=0;i<chks.length;i++)
 {
   if(chks[i].checked)
   {
 var tr = chks[i].parentElement.parentElement;
 newIndex = tr.rowIndex+iDirect;
 if(newIndex != 0 && newIndex != tb.rows.length)
 {
  tb.moveRow(tr.rowIndex,newIndex);
  } 
}
 }
 
 
 }
//-->
</SCRIPT>

解决方案 »

  1.   

    <script language="javascript">
    <!--
    function up(){
    var tr = getParentTr();
    var tb = tr.parentElement;
    var index = getTrIndex();
    if(index > 0)
    tb.moveRow(index, index - 1);
    else
    alert('cannot move!');
    }function down(){
    var tr = getParentTr();
    var tb = tr.parentElement;
    var index = getTrIndex();
    if(index == tb.rows.length -1)
    alert('cannot move!');
    else
    tb.moveRow(index, index + 1);
    }function getParentTr(){
    var objTr = event.srcElement.parentElement.parentElement;
    //alert(objTr.outerHTML);
    return objTr;
    }function getTrIndex(){
    var tr = getParentTr();
    var tb = tr.parentElement;
    for(var i=0; i<tb.rows.length; i++){
    if(tr == tb.rows[i]){
    return i;
    }
    }}
    //-->
    </script>
    </head>
    <body>
    <form id="Form1" method="post" runat="server">
    <div>
    <asp:datagrid id="DataGrid1" runat="server">
    <columns>
    <asp:templatecolumn>
    <itemtemplate>
    <button onclick="up();">UP</button> <button onclick="down();">DOWN</button>
    </itemtemplate>
    </asp:templatecolumn>
    </columns>
    </asp:datagrid>
    </div>
    </form>
    </body>
    </html>
      

  2.   

    public class WebForm1 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DataGrid DataGrid1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.IsPostBack)
    {
    BindGrid();
    }
    } private void BindGrid()
    {
    DataTable dt = new DataTable();
    DataRow dr; dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
    dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
    dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
    dt.Columns.Add(new DataColumn("BoolValue", typeof(bool))); for (int i = 0; i < 9; i++) 
    { dr = dt.NewRow(); dr[0] = i;
    dr[1] = "Item " + i.ToString();
    dr[2] = DateTime.Now;
    dr[3] = (i % 2 != 0) ? true : false; dt.Rows.Add(dr);
    } this.DataGrid1.DataSource = new DataView(dt);
    this.DataGrid1.DataBind();
    }
    ......