Welcome Guest Search | Active Topics | Sign In | Register

Callback - Confirm Delete in Datagrid Options
MikeL
Posted: Tuesday, March 4, 2008 4:18:18 PM
Rank: Member
Groups: Member

Joined: 2/27/2008
Posts: 17
I am using the following Callback.

<eo:CallbackPanel id="cbStartDate" runat="server" GroupName="Main" Triggers="{ControlID:dgSick;Parameter:}">

The datagrid has a delete button with a javascript confirm in it.

Even when cancel is clicked on the javascript the delete fires anyways. This only occurs when callback is used.

Any ideas how to get the confirm delete to work properly?
eo_support
Posted: Tuesday, March 4, 2008 4:25:42 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,194
Hi,

You will want to handle the callback's ClientSideBeforeExecute event. See a working example here:

http://www.essentialobjects.com/Demo/Default.aspx?path=Callback\_i0\_i4

The full source code of the sample project is available on your local machine after you install our controls.

Thanks
MikeL
Posted: Tuesday, March 4, 2008 4:33:05 PM
Rank: Member
Groups: Member

Joined: 2/27/2008
Posts: 17
Yah I found that and tried it out. The problem I am having is I am using a 2 callbacks grouped.

<eo:CallbackPanel id="cbStartDate" runat="server" GroupName="Main" Triggers="{ControlID:ddlType;Parameter:3},{ControlID:ddlType;Parameter:4},{ControlID:dgVacation;Parameter:},{ControlID:dgSick;Parameter:}">

AND

<eo:CallbackPanel id="cbSick" runat="server" GroupName="Main" width="100%" ClientSideBeforeExecute="confirm_delete">

The clientsidebeforeexecute only works when I add it to the top callback but I do not want it to fire there as thats not the datagrid. and when its added like the above it does not fire.

Any ideas?
eo_support
Posted: Tuesday, March 4, 2008 4:40:25 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,194
Hi Mike,

ClientSideBeforeExecute is only fired on the CallbackPanel that triggers the callback, other CallbackPanels in the group are "riders", they do not participant any decision making. In your case, since dgSick is set as a trigger on the top CallbackPanel, it will only trigger ClientSideBeforeExecute on the top CallbackPanel. So if you wish it to be fired on the bottom CallbackPanel, you would need to move the trigger down.

Thanks
MikeL
Posted: Tuesday, March 4, 2008 4:44:01 PM
Rank: Member
Groups: Member

Joined: 2/27/2008
Posts: 17
The triggers can only be set on one callback of the group correct?
MikeL
Posted: Tuesday, March 4, 2008 4:52:09 PM
Rank: Member
Groups: Member

Joined: 2/27/2008
Posts: 17
Heres what I am trying to accomplish :)

CallbackOne
- DropdownList
- 2 Calendar Controls

CallbackTwo
- DatagridOne with ClientSide Delete Button

CallbackThree
- DatagridTwo with ClientSide Delete Button

When the Dropdown changes CallbackOne needs to fire.

When DatagridOne Delete or DatagridTwo Delete are selected CallbackOne, CallbackTwo and CallbackThree must fire. And the clientside javascript must fire on the two Datagrids.

Any ideas?
eo_support
Posted: Tuesday, March 4, 2008 5:14:57 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,194
Hi,

You should:
1. Put DatagridOne as CallbackTwo's trigger, DataGridTwo as CallbackThree's trigger;
2. Set both CallbackTwo and CallbackThree's ClientSideBeforeExecute. You can use the same JavaScript function or different JavaScript function;
3. Group all three CallbackPanels together;

The basic idea is to get each CallbackPanel working independently first and then group them together. Forget about grouping when you try to trigger or cancel the callback because grouping has nothing to do with that. As previous mentioned, other CallbackPanels in the group are riders. They do not decide whether the callback gets triggered or not.

And yes. One control can only be set as one CallbackPanel's trigger.

Hope this clears up.

Thanks
MikeL
Posted: Tuesday, March 4, 2008 5:49:53 PM
Rank: Member
Groups: Member

Joined: 2/27/2008
Posts: 17
Ok here is what I did.

CallbackOne - DropdownList
<eo:CallbackPanel id="cbStartDate" runat="server" GroupName="Main" Triggers="{ControlID:ddlType;Parameter:3},{ControlID:ddlType;Parameter:4}">

CallbackTwo -DatagridOne
<eo:CallbackPanel id="cbStat" runat="server" GroupName="Main" width="100%" Triggers="{ControlID:dgStat;Parameter:}" ClientSideBeforeExecute="Confirm_Delete">

CallbackThree -DatagridTwo
<eo:CallbackPanel id="cbSick" runat="server" GroupName="Main" width="100%" Triggers="{ControlID:dgSick;Parameter:}" ClientSideBeforeExecute="Confirm_Delete">

Everything works great except the clientsidebeforeexecute fires twice...
eo_support
Posted: Tuesday, March 4, 2008 6:20:41 PM
Rank: Administration
Groups: Administration

Joined: 5/27/2007
Posts: 24,194
Hi,

We are not sure how that happens though. If you can isolate the problem into a test page (make sure it runs) and we will be happy to take a look.

Thanks
MikeL
Posted: Tuesday, March 4, 2008 6:34:18 PM
Rank: Member
Groups: Member

Joined: 2/27/2008
Posts: 17
I got it to work. I had to remove

Delete.Attributes.Add("onclick", "return confirm_delete();");

from my ItemDatabound.

Thanks!


You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.