Thanks Dan and Gaurav,
events are properly wired and here is the code : let me know if you
find something wrong here..
<ASP:DATAGRID ID="dgMasterData" RUNAT="server" SHOWFOOTER="True"
AUTOGENERATECOLUMNS="False"
ONUPDATECOMMAND="dgMasterData_UpdateCommand"
ONCANCELCOMMAND="dgMasterData_CancelCommand">
<EDITITEMSTYLE CSSCLASS="dgEditItem"></EDITITEMSTYLE>
<ALTERNATINGITEMSTYLE
CSSCLASS="dgAlternateItem"></ALTERNATINGITEMSTYLE>
<ITEMSTYLE CSSCLASS="dgItemStyle"></ITEMSTYLE>
<HEADERSTYLE CSSCLASS="dgHeader"></HEADERSTYLE>
<COLUMNS>
<ASP:TEMPLATECOLUMN VISIBLE="False">
<ITEMTEMPLATE>
<ASP:LABEL ID="lblMstrDataID" RUNAT="server" TEXT='<%#
DataBinder.Eval(Container.DataItem,"mstrDataID")%>'>
</ASP:LABEL>
</ITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN HEADERTEXT="Description">
<ITEMTEMPLATE>
<%# DataBinder.Eval(Container.DataItem,"mstrDataValue")%>
</ITEMTEMPLATE>
<FOOTERTEMPLATE>
<ASP:TEXTBOX ID="tbNewMasterDataValue" RUNAT="server"
CSSCLASS="tboxClass"></ASP:TEXTBOX>
</FOOTERTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:TEXTBOX ID="tbMasterDataValue" RUNAT="server"
CSSCLASS="tboxClass" TEXT='<%#
DataBinder.Eval(Container.DataItem,"mstrDataValue")%>'>
</ASP:TEXTBOX>
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:EDITCOMMANDCOLUMN BUTTONTYPE="PushButton" UPDATETEXT="Update"
CANCELTEXT="Cancel" EDITTEXT="Edit"></ASP:EDITCOMMANDCOLUMN>
<ASP:TEMPLATECOLUMN>
<FOOTERTEMPLATE>
<ASP:BUTTON ID="btnSaveNewMstrData" RUNAT="server" TEXT="Add New"
ONMOUSEOVER="btn_FocusOn(this)"
ONMOUSEOUT="btn_FocusOff(this)" CSSCLASS="mfbuttonCellText"
COMMANDNAME="Add New"></ASP:BUTTON>
</FOOTERTEMPLATE>
</ASP:TEMPLATECOLUMN>
</COLUMNS>
</ASP:DATAGRID>
private void InitializeComponent()
{
this.ddMasterData.SelectedIndexChanged += new
System.EventHandler(this.ddMasterData_SelectedIndexChanged);
this.dgMasterData.CancelCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMasterData_CancelCommand);
this.dgMasterData.EditCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMasterData_EditCommand);
this.dgMasterData.UpdateCommand += new
System.Web.UI.WebControls.DataGridCommandEventHandler(this.dgMasterData_UpdateCommand);
this.dgMasterData.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.dgMasterData_ItemDataBound);
this.Load += new System.EventHandler(this.Page_Load);
}
private void dgMasterData_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
try
{
dgMasterData.EditItemIndex = e.Item.ItemIndex;
}
catch(Exception ex)
{
Response.Write(ex.Message.ToString());
}
}
public void dgMasterData_CancelCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgMasterData.SelectedIndex = -1;
}
public void dgMasterData_UpdateCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
.........
}
[quoted text, click to view] DanG wrote:
> I set up my screens like this:
>
> <asp:TemplateColumn>
> <ItemStyle Wrap="false"></ItemStyle>
> <ItemTemplate>
> <asp:imagebutton runat="server" CommandName="Edit"
> BorderWidth="0" ImageURL="../images/edit.gif" alt="Edit"/>
> <asp:imagebutton runat="server" CommandName="Delete"
> id="btnDelete" BorderWidth="0" ImageURL="../images/delete.gif"
> alt="Delete" />
> </ItemTemplate>
>
> <EditItemTemplate>
> <asp:imagebutton runat="server" CommandName="Update"
> BorderWidth="0" ImageURL="../images/update.gif" alt="Save"/>
> <asp:imagebutton runat="server" CommandName="Cancel"
> BorderWidth="0" ImageURL="../images/cancel.gif" alt="Cancel"/>
> </EditItemTemplate>
>
> <FooterTemplate>
> <asp:imagebutton runat="server" CommandName="Insert"
> BorderWidth="0" ImageURL="../images/add.gif" alt="Add"/>
> </FooterTemplate>
> </asp:TemplateColumn>
>
> And this is the codebehind:
>
> public void DataGrid_ItemCommand (Object sender,
> DataGridCommandEventArgs e) {
> if (((ImageButton)e.CommandSource).CommandName == "Insert")
> {DataGrid_Insert(sender, e);}
> if (((ImageButton)e.CommandSource).CommandName == "Delete")
> {DataGrid_Delete(sender, e);}
> }
>
> public void DataGrid_Edit (Object sender, DataGridCommandEventArgs e) {
> DataGrid.EditItemIndex = e.Item.ItemIndex;
> DataGrid.ShowFooter = false;
> }
>
> public void DataGrid_Cancel (Object sender, DataGridCommandEventArgs e)
> {
> DataGrid.EditItemIndex = -1;
> DataGrid.ShowFooter = true;
> }
>
>
> public void DataGrid_Update (Object sender, DataGridCommandEventArgs e)
> {
> DataGrid.EditItemIndex = -1;
> DataGrid.ShowFooter = true;
> }
>
> public void DataGrid_Insert (Object sender, DataGridCommandEventArgs e)
> {
> DataGrid.EditItemIndex = -1;
> }
>
> public void DataGrid_Delete (Object sender, DataGridCommandEventArgs e)
> {
> DataGrid.EditItemIndex = -1;
> }
>
> //Add a "confirm" to the Delete button
> public void DataGrid_ItemCreated(Object sender, DataGridItemEventArgs
> e) {
> ListItemType itemType = e.Item.ItemType;
> if (itemType == ListItemType.Item || itemType ==
> ListItemType.AlternatingItem) {
> ImageButton ib = (ImageButton) e.Item.FindControl("btnDelete");
> if (ib != null) {
> ib.Attributes.Add("onclick", "return confirm('Delete this
> record?');");
> }
> }
> }
>
> If you're running VB, be sure you haven't lost the "handles" clauses on
> your events. I hate it when that happens!!
>
> HTH
> Dan