I have a radGrid. I have a GridButtonColumn for a delete button. when the delete button is pressed, it brings up a rad confirm box via the following method:
http://www.telerik.com/community/forums/aspnet-ajax/grid/need-dynamic-confirmtext-on-programmatically-added-column.aspx
the radconfirm box works fine. it shows the right text and everything. the confirmFn gets the correct itemIndex value as well. but once the process hits the codebehind's ItemCommand event for the DeleteMember CommandName ItemIndex is always zero.
So when OK is clicked (in the radWindow), it continues on to the radGrid's ItemCommand event. Once it goes into this event it claims the e.Item.ItemIndex is 0 (first row in grid), even when I've clicked on a row that is definitely not 0 index.
this has been driving me crazy. I'd like to get it resolved ASAP. any help is appreciated.
my code:
javascript code for the confirm box:
ajaxmanager on page:
radGrid
radwindowmanager
radGrid ItemCommand event
radGrid ItemDataBound
help! thanks!
http://www.telerik.com/community/forums/aspnet-ajax/grid/need-dynamic-confirmtext-on-programmatically-added-column.aspx
the radconfirm box works fine. it shows the right text and everything. the confirmFn gets the correct itemIndex value as well. but once the process hits the codebehind's ItemCommand event for the DeleteMember CommandName ItemIndex is always zero.
So when OK is clicked (in the radWindow), it continues on to the radGrid's ItemCommand event. Once it goes into this event it claims the e.Item.ItemIndex is 0 (first row in grid), even when I've clicked on a row that is definitely not 0 index.
this has been driving me crazy. I'd like to get it resolved ASAP. any help is appreciated.
my code:
javascript code for the confirm box:
<script type="text/javascript"> |
function confirmFn(text, itemIndex) { |
var callBackFn = function(arg) { |
if (arg) { |
var masterTable = $find("<%= rgMembers.ClientID %>").get_masterTableView(); |
masterTable.fireCommand("DeleteMember", itemIndex); |
} |
} |
radconfirm(text, callBackFn); |
} |
</script> |
ajaxmanager on page:
<telerik:RadAjaxManager ID="ramManageMembers" runat="server"> |
<AjaxSettings> |
<telerik:AjaxSetting AjaxControlID="ramManageMembers"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="rgMembers" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
<telerik:AjaxSetting AjaxControlID="rgMembers"> |
<UpdatedControls> |
<telerik:AjaxUpdatedControl ControlID="rgMembers" /> |
</UpdatedControls> |
</telerik:AjaxSetting> |
</AjaxSettings> |
</telerik:RadAjaxManager> |
radGrid
<telerik:RadGrid ID="rgMembers" runat="server" Width="100%" ShowStatusBar="False" Skin="mySkin" EnableEmbeddedSkins="false" |
AutoGenerateColumns="False" PageSize="10" AllowSorting="True" AllowMultiRowSelection="False" |
AllowPaging="True" OnItemDataBound="rgMembers_ItemDataBound"> |
<PagerStyle NextPageText="" PrevPageText="" AlwaysVisible="True" Mode="NextPrevAndNumeric" Position="TopAndBottom" Font-Bold="False" Font-Italic="False" |
HorizontalAlign="Right" PageButtonCount="8" PagerTextFormat="Page: {4} Displaying page {0} of {1}, items {2} to {3} of {5}." |
Wrap="True" FirstPageImageUrl="" FirstPageText="" LastPageText="" VerticalAlign="Middle" /> |
<MasterTableView Width="100%" DataKeyNames="ApplicantID" AllowMultiColumnSorting="False"> |
<Columns> |
<telerik:GridBoundColumn UniqueName="gcApplicantID" SortExpression="ApplicantID" HeaderText="ApplicantID" HeaderButtonType="TextButton" |
DataField="ApplicantID" Visible="False" ItemStyle-HorizontalAlign="Right"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="gcPassNumber" SortExpression="PassNumber" HeaderText="Pass #" HeaderButtonType="TextButton" |
DataField="PassNumber" Visible="True" DataformatString="{0:D5}" ItemStyle-HorizontalAlign="Right" ItemStyle-Width="40px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="gcTitle" SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" |
DataField="Title" Visible="false"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="gcLastName" SortExpression="LastName" HeaderText="Last Name" HeaderButtonType="TextButton" |
DataField="LastName"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="gcFirstName" SortExpression="FirstName" HeaderText="First Name" HeaderButtonType="TextButton" |
DataField="FirstName" ItemStyle-Width="120px"> |
</telerik:GridBoundColumn> |
<telerik:GridBoundColumn UniqueName="gcMiddleName" SortExpression="MiddleName" HeaderText="Middle Name" HeaderButtonType="TextButton" |
DataField="MiddleName" Visible="false"> |
</telerik:GridBoundColumn> |
<telerik:GridTemplateColumn UniqueName="gtcEdit"> |
<HeaderTemplate> |
Edit |
</HeaderTemplate> |
<ItemTemplate> |
<div class="functionButtons"> |
<asp:Button runat="server" Text="" CssClass="btnEdit" ID="btnEdit" CommandName="EditClicked" /> |
</div> |
</ItemTemplate> |
</telerik:GridTemplateColumn> |
<telerik:GridButtonColumn UniqueName="gbcDelete" Text="" HeaderText="Delete" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" |
ButtonType="PushButton" ButtonCssClass="btnDelete" Visible="false"> |
</telerik:GridButtonColumn> |
</Columns> |
</MasterTableView> |
</telerik:RadGrid> |
radwindowmanager
<telerik:RadWindowManager ID="rwmConfirmDelete" runat="server" KeepInScreenBounds="true" Title="Delete Member?" InitialBehaviors="Close,Move" Behaviors="Close,Move" |
Skin="Simple" Width="450px"> |
</telerik:RadWindowManager> |
radGrid ItemCommand event
Protected Sub rgMembers_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles rgMembers.ItemCommand |
Dim Applicant As New DAL.Applicant |
Dim curUserID = AppSession.CurrentUser.UserID |
Select Case e.CommandName |
Case "EditClicked" |
ApplicantID = CType(rgMembers.MasterTableView.DataKeyValues.Item(e.Item.ItemIndex)("ApplicantID"), Integer) |
AppSession.CurrentApplicant = New DAL.Applicant(ApplicantID) |
pnlsearch.Visible = False |
appDetails.PopulateForm() |
Case "ExportToExcel" |
ConfigureExport() |
'exporting data |
Case "DeleteMember" |
'show confirm box. |
ApplicantID = CType(rgMembers.MasterTableView.DataKeyValues.Item(e.Item.ItemIndex)("ApplicantID"), Integer) |
AppSession.CurrentApplicant = New DAL.Applicant(ApplicantID) |
With AppSession.CurrentApplicant |
.Deleted = True |
.LastUpdated = Now |
.LastUpdatedID = curUserID |
.Update() |
End With |
rgMembers.Rebind() |
MasterPage.PageStatusText = AppSession.CurrentApplicant.LastName + ", " + AppSession.CurrentApplicant.FirstName + " (Pass #: " + String.Format("{0:D5}", AppSession.CurrentApplicant.PassNumber.ToString) + ") has been successfully deleted." |
AppSession.CurrentApplicant = Nothing |
Case Else |
Exit Sub |
End Select |
End Sub |
radGrid ItemDataBound
If TypeOf e.Item Is GridDataItem Then |
Dim item As GridDataItem = TryCast(e.Item, GridDataItem) |
Dim cell As TableCell = item("gbcDelete") |
Dim btnDelete As Button = DirectCast(cell.Controls(0), Button) |
btnDelete.Attributes.Add("onclick", "confirmFn('Are you sure you want to delete member " + item("gcLastName").Text + ", " + item("gcFirstName").Text + " ?" + "','" + CStr(e.Item.ItemIndex) + "'); return false;") |
End If |
End Sub |
help! thanks!