Thursday, December 09, 2010

Exporting to Excel from Telerik Gridview in Silverlight

Here is the sample code for exporting Telerik Gridview in silverlight.

private void btnExportOrders_Click(object sender, RoutedEventArgs e)
{
   // Checking whether grid has rows
    if (OrderGrid.Items.Count > 0)
    {
          string extension = "xls";
          string selectedItem = "Excel";
          ExportFormat format = ExportFormat.ExcelML;
          SaveFileDialog dialog = new SaveFileDialog();
          dialog.DefaultExt = extension;
          dialog.Filter = String.Format("{1} files (*.{0})|*.{0}|All files (*.*)|*.*", extension, selectedItem);
          dialog.FilterIndex = 1;
          if (dialog.ShowDialog() == true)
          {
              using (Stream stream = dialog.OpenFile())
              {
                GridViewExportOptions options = new GridViewExportOptions();
                options.Format = format;
                options.ShowColumnHeaders = true;
                options.Encoding = Encoding.UTF8;
                options.ShowColumnHeaders = true;
               // name of the grid which you want export      
                OrderGrid.Export(stream, options);
               }
           }
     }
     else
      {
         // User friendly Message
          MessageBox.Show("There are no records to export.", "Export Warning!", MessageBoxButton.OK);
      }
 }

This export code will also support different formats like CSV,Text and HTML. All you need to change is the enum type for ExportFormat to above formats and the extension. Its easy and simple. Good luck Winking smile

Silverlight: MessageBox with Title, OK, and Cancel Buttons

A message box is a dialog box that is used to display an alert or a message. A message box can have a title and multiple options such as Yes/No or  OK/Cancel. A message box can also have some input control to take input from a user.

The MessageBox class in WPF represents a modal message box dialog, which is defined in the System.Windows namespace. The Show static method of the MessageBox is the only method that is used to display a message box. The Show method returns a MessageBoxResult enumeration that has values OK, Cancel, Yes, and No. We can use MessageBoxResult to find out what button was clicked on a MessageBox and take an appropriate action.

The following code snippet creates a MessageBox with a message, a title, and two OK and Cancel buttons.

 MessageBoxResult result = MessageBox.Show("Are you sure you want to delete this Deposit?",
                                    "Delete", MessageBoxButton.OKCancel);
      if (result == MessageBoxResult.OK)
      {
         // do if your result is OK
      } 
      else
      {
         // do if result is cancel
      }

Hope this help Smile

Sunday, December 05, 2010

T-SQL: Change tables owner to dbo with sp_changeobjectowner

Sometimes there is a need to change all tables in the database to be owned by dbo for maintenance or to fix up accidental errors. All tables owned by dbo schema is usually best practices in the database application development with MSSQL.

The following small SQL code snippet goes through all user tables in the database and changes their owner to dbo. It usessp_changeobjectowner system stored procedure

DECLARE tabcurs CURSOR
FOR
    SELECT 'dips.' + [name]
      FROM sysobjects
     WHERE xtype = 'u'
OPEN tabcurs
DECLARE @tname NVARCHAR(517)
FETCH NEXT FROM tabcurs INTO @tname
WHILE @@fetch_status = 0
BEGIN
    EXEC sp_changeobjectowner @tname, 'dbo'
    FETCH NEXT FROM tabcurs INTO @tname
END
CLOSE tabcurs
DEALLOCATE tabcurs

Hope this is useful..

Javascript Tip: Close Pop-up - Refresh Parent

Sometimes we need to force parent refresh on closing pop-up window which was opened from this parent window. There are many ways to make it work, however the most elegant way will be using location.href

function Refresh() 
{
    window.opener.location.href = window.opener.location.href;
    window.close();
}

Smile

ASP.NET Tip: Render Control into HTML String

How to get string representation of ASP.NET control or in other words render it into string instead of let it be rendered on the page. Here is the sample code to Render control

using System.Text;
using System.IO;
using System.Web.UI;
public string RenderControl(Control ctrl) 
{
    StringBuilder sb = new StringBuilder();
    StringWriter tw = new StringWriter(sb);
    HtmlTextWriter hw = new HtmlTextWriter(tw);
    ctrl.RenderControl(hw);
    return sb.ToString();
}