在后置文件中生成的EditCommandColumn不能正常工作?
代码如下:
<html>
<script runat="server">
OleDbDataReader myReader;
void Page_Load(Object sender, EventArgs e)
{
InitDataGrid();
GetSource();
if (!IsPostBack)
{
BindGrid();
}
ItemsGrid.EditCommand += new DataGridCommandEventHandler(this.ItemsGrid_Edit);
ItemsGrid.CancelCommand += new DataGridCommandEventHandler(this.ItemsGrid_Cancel);
ItemsGrid.UpdateCommand += new DataGridCommandEventHandler(this.ItemsGrid_Update);
}
void InitDataGrid()
{
DataGridColumnCollection columns = ItemsGrid.Columns;
EditCommandColumn cmdColumn;
BoundColumn bndColumn;
cmdColumn = new EditCommandColumn();
cmdColumn.EditText = "edit";
cmdColumn.UpdateText = "update";
cmdColumn.CancelText = "cancel";
columns.Add( cmdColumn );
bndColumn = new BoundColumn();
bndColumn.DataField = "job_name";
bndColumn.HeaderText = "name";
columns.Add( bndColumn );
bndColumn = new BoundColumn();
bndColumn.DataField = "job_description";
bndColumn.HeaderText = "description";
columns.Add( bndColumn );
}
void ItemsGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
ItemsGrid.EditItemIndex = e.Item.ItemIndex;
BindGrid();
}
void ItemsGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
ItemsGrid.EditItemIndex = -1;
BindGrid();
}
void ItemsGrid_Update(Object sender, DataGridCommandEventArgs e)
{
ItemsGrid.EditItemIndex = -1;
BindGrid();
}
void BindGrid()
{
ItemsGrid.DataSource = myReader;
ItemsGrid.DataBind();
}
void GetSource()
{
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\wwwroot\hris\web\data\main.mdb";
OleDbConnection conn = new OleDbConnection( connStr );
OleDbCommand command = new OleDbCommand( "up_GetJobs", conn );
command.CommandType = CommandType.StoredProcedure;
conn.Open();
myReader = command.ExecuteReader();
}
</script>
<body>
<form runat="server">
<h3>DataGrid Editing Example</h3>
<asp:DataGrid id="ItemsGrid"
AutoGenerateColumns="false"
runat="server">
</asp:DataGrid>
</form>
</body>
</html>
直接在Html内加入<asp:EditCommandColumn>却可以正常工作,何故?