This is a migrated thread and some comments may be shown as answers.

Issue assigning a MultiLine ConfirmText on a BgridButtonColumn

6 Answers 127 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Tim
Top achievements
Rank 1
Tim asked on 10 Oct 2012, 01:31 PM

So, I am unable to assign a MultiLine Message as my Confirmation Text for a Delete ImageButton.

The below code, when not REM'd out, does not throw an error but when I hit Delete, the confirmation does not appear at all and it merely Deletes the record.  If I use a single Line of text, it appears and prompts for confirmation.

Not a deal breaker for me but I thought I would mention it.

Private Sub RecipientsGrid_ItemCreated(sender As Object, e As Telerik.Web.UI.GridItemEventArgs) Handles RecipientsGrid.ItemCreated
If TypeOf e.Item Is GridDataItem Then
Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
Dim DeleteBtn As GridButtonColumn = TryCast(RecipientsGrid.MasterTableView.GetColumn("DeleteOrganization"), GridButtonColumn)
Dim DeleteMsg As New StringBuilder
'DeleteMsg.Append("Delete this Organization?")
'DeleteMsg.Append(ControlChars.NewLine)
'DeleteMsg.Append("Note: This will DELETE all Contacts for this Organization!")
'DeleteBtn.ConfirmText = DeleteMsg.toString
DeleteBtn.ConfirmText = "DELETE ME!"
End If
End Sub

6 Answers, 1 is accepted

Sort by
0
Shinu
Top achievements
Rank 2
answered on 11 Oct 2012, 07:01 AM
Hi Tim,

Please try the following code snippet.

C#:
protected void RadGrid1_ItemCreated(object sender, GridItemEventArgs e)
{
    if (e.Item is GridDataItem)
    {
        GridDataItem item = (GridDataItem)e.Item;
        GridButtonColumn DeleteBtn = RadGrid1.MasterTableView.GetColumn("DeleteOrganization") as GridButtonColumn;
        StringBuilder DeleteMsg = new StringBuilder();
        DeleteMsg.Append("Delete this Organization?\\n");
        DeleteMsg.Append("Note: This will DELETE all Contacts for this Organization!");   
        DeleteBtn.ConfirmText = DeleteMsg.ToString();
         
    }
}

Thanks,
Shinu.
0
Tim
Top achievements
Rank 1
answered on 11 Oct 2012, 01:31 PM
Thx, I tried the code and while it does now prompt me, all the text is still on one line and it look slike the below

'Delete this Organization?\nNote: This will DELETE all Contacts for this Organization!'
0
Greg
Top achievements
Rank 1
answered on 11 Oct 2012, 03:31 PM
Just add @ before your strings  (@"text goes here\n")
0
Tim
Top achievements
Rank 1
answered on 11 Oct 2012, 03:35 PM
When I do that, VS gets upset as says Expression Expected.

I tried the Telerik Translator and it can't translate the below.

DeleteMsg.Append(@"Delete this Organization?\\n")
DeleteMsg.Append(@"Note: This will DELETE all Contacts for this Organization!")
DeleteBtn.ConfirmText = DeleteMsg.ToString



0
Greg
Top achievements
Rank 1
answered on 11 Oct 2012, 07:07 PM
Oh, that's right, you use Telerik control :) From your code I see that it could be done using plain Javascript confirm window. I just did it with DataTable, looped through all rows, added one column and it worked perfectly

DataSet ds = data from somehwere;
                StringBuilder campaignsToBreak = new StringBuilder();
                foreach (DataRow row in ds.Tables[1].Rows)
                {
                    campaignsToBreak.Append(row["CampaignName"] + @"\n");
                }
  
                l.Enabled = true;
                l.Attributes.Add("onclick", @"javascript:return confirm('All related Campaigns will have their link broken.\n\n" + 
                    campaignsToBreak + @"\nContinue?')");
0
Tim
Top achievements
Rank 1
answered on 12 Oct 2012, 06:53 PM
Ok, so I did a fair mount of testing, here's what's happening.  If I put any kind of text in the ConfirmText para in the Markup, that text is what's displayed, no matter that I overwrite it from the code-behind. 

Scenario 1. The below example will ALWAYS display XxX.
<telerik:GridButtonColumn ConfirmText="XxX" ConfirmTitle="Delete" UniqueName="DeleteOrganization"  ButtonType="ImageButton" CommandName="Delete" ConfirmDialogHeight="100px" ConfirmDialogWidth="220px"  HeaderStyle-Width="25"  />
If TypeOf e.Item Is GridDataItem Then
 
          Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
          Dim DeleteBtn As GridButtonColumn = TryCast(RecipientsGrid.MasterTableView.GetColumn("DeleteOrganization"), GridButtonColumn)
          Dim DeleteMsg As New StringBuilder
 
          Select Case PageName
              Case "Agreements.aspx"
                  DeleteMsg.Append("Remove from this Agreement!")
              Case "ManageRecipients.aspx"
                  DeleteMsg.Append("Delete Organziation, including all Contacts!!")
          End Select
 
          DeleteBtn.ConfirmText = DeleteMsg.ToString
      End If


Scenario 2.  This will always just delete the item in question, Without prompting the user.  Can anyone replicate this issue?
<telerik:GridButtonColumn ConfirmTitle="Delete" UniqueName="DeleteOrganization" ButtonType="ImageButton" CommandName="Delete" ConfirmDialogHeight="100px" ConfirmDialogWidth="220px"  HeaderStyle-Width="25"  />
If TypeOf e.Item Is GridDataItem Then
 
    Dim item As GridDataItem = DirectCast(e.Item, GridDataItem)
    Dim DeleteBtn As GridButtonColumn = TryCast(RecipientsGrid.MasterTableView.GetColumn("DeleteOrganization"), GridButtonColumn)
    Dim DeleteMsg As New StringBuilder
 
    Select Case PageName
        Case "Agreements.aspx"
            DeleteMsg.Append("Remove from this Agreement!")
        Case "ManageRecipients.aspx"
            DeleteMsg.Append("Delete Organziation, including all Contacts!!")
    End Select
 
    DeleteBtn.ConfirmText = DeleteMsg.ToString
End If


Greg, thanks for the suggestion, I haven't tried using Javascript instead.
Tags
Grid
Asked by
Tim
Top achievements
Rank 1
Answers by
Shinu
Top achievements
Rank 2
Tim
Top achievements
Rank 1
Greg
Top achievements
Rank 1
Share this question
or