一.前臺代碼(Default.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"
EnableEventValidation="false" %>
<html>
<head runat="server">
<title>JS操作Grid</title>
<script language="javascript" src="Default.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server" method="post">
<asp:DataGrid ID="grdlist" CssClass="td" runat="server" AutoGenerateColumns="False"
Width="100%">
<Columns>
<asp:BoundColumn DataField="No" HeaderText="序號"></asp:BoundColumn>
<!-- 添加模板列,主要用於放置各種控件-->
<asp:TemplateColumn HeaderText="選取">
<ItemTemplate>
<asp:CheckBox runat="server" ID="chkData" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="按鈕">
<ItemTemplate>
<asp:Button ID="btnInsert" runat="server" Text="新增" OnClientClick=" return insertRow()" />
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="Note" HeaderText="備註"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
二.後臺代碼(Default.aspx.vb)
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//用來給GRID添加初始數據
DataTable dt = new DataTable();
dt.Columns.Add("No");
dt.Columns.Add("Note");
DataRow NewRows = dt.NewRow();
NewRows["No"] = "1";
NewRows["Note"] = "測試範例(不可刪除)";
dt.Rows.Add(NewRows);
this.grdlist.DataSource = dt;
this.grdlist.DataBind();
}
}
三.javascript(Default.js)
//grdlist是Grid名稱,也可是表格名稱
//新增一行
function insertRow()
{
var nRow=document.all.grdlist.rows.length; //表格的總行數
var objTheRow=document.all.grdlist.insertRow(nRow);//在最下邊新增一行
//以下是要增加的內容
objTheRow.insertCell(0).innerText=nRow;
objTheRow.insertCell(1).innerHTML="<input type='checkbox' disabled='disabled' >";
objTheRow.insertCell(2).innerHTML="<input type='button' value='刪除' onClick='deleteCurrentRow()' > ";
objTheRow.insertCell(3).innerText='可刪除';
return false;
}
//刪除當前行
function deleteCurrentRow()
{
var currRowIndex=event.srcElement.parentNode.parentNode.rowIndex; //取當前行的rowIndex
document.all.grdlist.deleteRow(currRowIndex); //刪除
}