DataGrid ItemCommand???


G

Guest

hi all,
i am having problem with using itemcommand of datagrid by way of asp:image
button.
i have put an image button in a datagrid item template and have set
CommandName="DeleteRecord" and have coded a switch to handle the event.
I have done this vb.net and it works fine..put in c# i can not catch the
item command..i stepped into code
via debug mode.. its just doest enter the dgrCaseType_ItemCommand...
I AM TOTALLY CLULESS.....WHAT AM I MISSING...
PLZ see code below.........

<asp:DataGrid ID="dgrCaseType" Runat="server" AutoGenerateColumns="False"
Width="100%" BorderWidth="2"
BorderColor="#ffffff" HeaderStyle-HorizontalAlign="Center"
AllowSorting="True" EnableViewState="True">
<AlternatingItemStyle CssClass="bg-ltgray"></AlternatingItemStyle>
<Columns>
<asp:BoundColumn HeaderText="Default Owner"
HeaderStyle-CssClass="menu_gray" DataField="CSPersonnell"
HeaderStyle-Width="150"></asp:BoundColumn>
<asp:TemplateColumn HeaderStyle-CssClass="menu_gray"
HeaderStyle-Width="150" HeaderText="Options"
ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" CommandName="EditRecord"
ImageUrl="../../Images/icon_edit.gif"
AlternateText="Edit" Runat="server"
Height="16" Width="16"
EnableViewState="False"></asp:ImageButton>

<asp:ImageButton ID="imgDelete" CommandName="DeleteRecord"
ImageUrl="../../Images/icon_trash.gif"
AlternateText="Delete" Runat="server"
Height="16" Width="16"
EnableViewState="False"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>

</Columns>
</asp:DataGrid>

Then I have coded the following:

protected System.Web.UI.WebControls.DataGrid dgrCaseType;

protected void dgrCaseType_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch(e.CommandName)
{
case "EditRecord":
string s=e.Item.Cells[7].Text;
break;
case "DeleteRecord":

break;
}
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.dgrCaseType.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.dgrCaseType_ItemDataBound);
}

Thanks in advance..
-Sami.
 
Ad

Advertisements

T

Teemu Keiski

You need to wire the event handler for the DataGrid's ItemCommand event? Do
yiou have it done in code-behind in InitializeComponent method? (It looks
like dgrCaseType.ItemCommand += new
DataGridCommandEventHandler(method_name);..., which seems to be missing
there)

If you don't have it code-behind, you can wiree it on aspx on DataGrid's
declaration:

.... OnItemCommand="dgrCaseType_ItemCommand" ...

or make up similar wiring in InitializeComponent as for other events.


--
Teemu Keiski
MCP, Microsoft MVP (ASP.NET), AspInsiders member
ASP.NET Forum Moderator, AspAlliance Columnist
http://blogs.aspadvice.com/joteke



Syed Sami R. Shah said:
hi all,
i am having problem with using itemcommand of datagrid by way of asp:image
button.
i have put an image button in a datagrid item template and have set
CommandName="DeleteRecord" and have coded a switch to handle the event.
I have done this vb.net and it works fine..put in c# i can not catch the
item command..i stepped into code
via debug mode.. its just doest enter the dgrCaseType_ItemCommand...
I AM TOTALLY CLULESS.....WHAT AM I MISSING...
PLZ see code below.........

<asp:DataGrid ID="dgrCaseType" Runat="server" AutoGenerateColumns="False"
Width="100%" BorderWidth="2"
BorderColor="#ffffff" HeaderStyle-HorizontalAlign="Center"
AllowSorting="True" EnableViewState="True">
<AlternatingItemStyle CssClass="bg-ltgray"></AlternatingItemStyle>
<Columns>
<asp:BoundColumn HeaderText="Default Owner"
HeaderStyle-CssClass="menu_gray" DataField="CSPersonnell"
HeaderStyle-Width="150"></asp:BoundColumn>
<asp:TemplateColumn HeaderStyle-CssClass="menu_gray"
HeaderStyle-Width="150" HeaderText="Options"
ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" CommandName="EditRecord"
ImageUrl="../../Images/icon_edit.gif"
AlternateText="Edit" Runat="server"
Height="16" Width="16"
EnableViewState="False"></asp:ImageButton>

<asp:ImageButton ID="imgDelete" CommandName="DeleteRecord"
ImageUrl="../../Images/icon_trash.gif"
AlternateText="Delete" Runat="server"
Height="16" Width="16"
EnableViewState="False"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>

</Columns>
</asp:DataGrid>

Then I have coded the following:

protected System.Web.UI.WebControls.DataGrid dgrCaseType;

protected void dgrCaseType_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch(e.CommandName)
{
case "EditRecord":
string s=e.Item.Cells[7].Text;
break;
case "DeleteRecord":

break;
}
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.dgrCaseType.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.dgrCaseType_ItemDataBound);
}

Thanks in advance..
-Sami.
 
K

Karl Seguin

first off, you aren't hooking up the ItemCommand event...you are hooking up
the ItemDataBound however...you need this:

this.dgrCaseType.ItemCommand+=new
DataGridCommandEventHandler(dgrCaseType_ItemCommand);

in your InitializeComponent (or page_load).


Secondly, assuming you have the above, you also need to make sure that you
aren't rebinding on postback, if so you'll lose ur event...

Karl

--
MY ASP.Net tutorials
http://www.openmymind.net/


Syed Sami R. Shah said:
hi all,
i am having problem with using itemcommand of datagrid by way of asp:image
button.
i have put an image button in a datagrid item template and have set
CommandName="DeleteRecord" and have coded a switch to handle the event.
I have done this vb.net and it works fine..put in c# i can not catch the
item command..i stepped into code
via debug mode.. its just doest enter the dgrCaseType_ItemCommand...
I AM TOTALLY CLULESS.....WHAT AM I MISSING...
PLZ see code below.........

<asp:DataGrid ID="dgrCaseType" Runat="server" AutoGenerateColumns="False"
Width="100%" BorderWidth="2"
BorderColor="#ffffff" HeaderStyle-HorizontalAlign="Center"
AllowSorting="True" EnableViewState="True">
<AlternatingItemStyle
CssClass="bg-ltgray"> said:
<Columns>
<asp:BoundColumn HeaderText="Default Owner"
HeaderStyle-CssClass="menu_gray" DataField="CSPersonnell"
HeaderStyle-Width="150"></asp:BoundColumn>
<asp:TemplateColumn HeaderStyle-CssClass="menu_gray"
HeaderStyle-Width="150" HeaderText="Options"
ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton ID="imgEdit" CommandName="EditRecord"
ImageUrl="../../Images/icon_edit.gif"
AlternateText="Edit" Runat="server"
Height="16" Width="16"
EnableViewState="False"></asp:ImageButton>

<asp:ImageButton ID="imgDelete" CommandName="DeleteRecord"
ImageUrl="../../Images/icon_trash.gif"
AlternateText="Delete" Runat="server"
Height="16" Width="16"
EnableViewState="False"></asp:ImageButton>
</ItemTemplate>
</asp:TemplateColumn>

</Columns>
</asp:DataGrid>

Then I have coded the following:

protected System.Web.UI.WebControls.DataGrid dgrCaseType;

protected void dgrCaseType_ItemCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
switch(e.CommandName)
{
case "EditRecord":
string s=e.Item.Cells[7].Text;
break;
case "DeleteRecord":

break;
}
}

private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.dgrCaseType.ItemDataBound += new
System.Web.UI.WebControls.DataGridItemEventHandler(this.dgrCaseType_ItemData
Bound);
}

Thanks in advance..
-Sami.
 
Ad

Advertisements

Joined
Mar 10, 2008
Messages
1
Reaction score
0
DataGrid.ItemCommand

Hi all,
I have a datagrid in which a link button is there.The problem is after clicking the link button it takes long time to fire the event. But the appliaction have same features in other page where it works fine. Can you suggest what to do. I have reset the iis-server too.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top