giovedì 24 novembre 2011

Connessione a DB Sql Server Embedded con il Management Studio

Per connettersi con SqlServer Management Studio a un db SSEE (SQL Server Embedded Edition)
usare la seguente stringa come Server Name:

\\.\pipe\mssql$microsoft##ssee\sql\query

martedì 4 ottobre 2011

Alert modale jQuery in Page_Load

Inserire un alert jQuery nel metodo Page_Load di una nostra WebForm (magari per un'operazione non andata a buon fine) potrebbe non essere semplice, in quanto il Page_Load viene invocato prima che la pagina si carichi gli script allegati.

Per risolvere, basterà fare in questo modo:


Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load

[…]
ScriptManager.RegisterClientScriptInclude(Page, Page.GetType, Guid.NewGuid().ToString(), Page.ResolveUrl("~/js/jquery-1.6.2.min.js"))
        ScriptManager.RegisterClientScriptInclude(Page, Page.GetType, Guid.NewGuid().ToString(), Page.ResolveUrl("~/js/jquery-ui-1.8.16.custom.min.js"))
        Dim sb As New StringBuilder
        sb.Append("$(function() { ")
        sb.Append(" $( '#dialog-message-error' ).dialog({")
        sb.Append("    modal: true,")
        sb.Append("    buttons: {")
        sb.Append("        Ok: function() {")
        sb.Append("               $( this ).dialog( 'close' );")
        sb.Append("        }")
        sb.Append("    }")
        sb.Append(" });")
        sb.Append("});")
        ScriptManager.RegisterClientScriptBlock(Page, Page.GetType, Guid.NewGuid().ToString(), sb.ToString, True)
End Sub


Questo supponendo ovviamente che gli script di jquery e jquery-ui si trovino nella cartella "js" della root e che esista il seguente div:


<div id="dialog-message-error" title="Errore" style="display: none; font-size: small">
<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
<p>
<span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;">span>
<strong>Errore:strong> Testo dell'errore.
p>
div>
div>

lunedì 3 ottobre 2011

Android: Dimensioni ed orientamento dello schermo


/* Ottenere il display da WindowManager */
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
           
/* Ricavare tutte le info che servono */
int width = display.getWidth();
int height = display.getHeight();
int orientation = display.getOrientation();

mercoledì 28 settembre 2011

Android: Comporre un numero di telefono


import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;

public class DialANumber extends Activity {
      EditText mEditText_number = null;
      LinearLayout mLinearLayout_no_button = null;
      Button mButton_dial = null;
     
      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mLinearLayout_no_button = new LinearLayout(this);
           
            mEditText_number = new EditText(this);
            mEditText_number.setText("5551222");
            mLinearLayout_no_button.addView(mEditText_number);
            mButton_dial = new Button(this);
            mButton_dial.setText("Dial!");
            mLinearLayout_no_button.addView(mButton_dial);
            mButton_dial.setOnClickListener(new View.OnClickListener() {
                  public void onClick(View v) {
                             performDial();
                  }
            });
           
            setContentView(mLinearLayout_no_button);
      }
     
      public boolean onKeyDown(int keyCode, KeyEvent event) {
            if (keyCode == KeyEvent.KEYCODE_CALL) {
                  performDial();
                  return true;
            }
            return false;
      }
     
      public void performDial(){
            if(mEditText_number!=null){
                  try {
                        startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mEditText_number.getText())));
                  }
                  catch (Exception e)
                  {
                        e.printStackTrace();
                  }
            }
      }

martedì 27 settembre 2011

Android: Caricare un'immagine dal web


public Bitmap getRemoteImage(final URL aURL) {
      try {
            final URLConnection conn = aURL.openConnection();
            conn.connect();
            final BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
            final Bitmap bm = BitmapFactory.decodeStream(bis);
            bis.close();
            return bm;
      } catch (IOException e) {
            [...]
      }
      return null;
}

martedì 20 settembre 2011

Ordinamento di una DataTable

Effettuare l'ordinamento di una DataTable è molto semplice:

[VB.Net]
dt.DefaultView.Sort = "NomeColonna"  'DataTable normale 

ds.Tables("NomeTabella").DefaultView.Sort = "NomeColonna"  'DataTable in DataSet


[C#]
dt.DefaultView.Sort = "NomeColonna"  'DataTable normale 

ds.Tables["NomeTabella"].DefaultView.Sort = "NomeColonna"  'DataTable in DataSet


In realtà, in questo modo non si ordina "fisicamente" il contenuto della DataTable bensì la sua vista predefinita. A livello di visualizzazione dati, però, il risultato è lo stesso.
Usando la nostra DataTable, per esempio, come datasource di una GridView l'elenco sarà ordinato in base al criterio utilizzato.

UpdateProgress centrato dinamicamente


<script language="JavaScript" type="text/javascript">
        function adjustDivs() {           
            interno = document.getElementById('divCalcolaInterno');
            esterno = document.getElementById('divCalcola');
            dfs = interno.style;
           
            dfs.left = (esterno.innerWidth - interno.offsetWidth) / 2;
        }

        window.onload = adjustDivs;
        window.onresize = adjustDivs;
        window.onscroll = adjustDivs;
<script>

<asp:UpdatePanel ID="updXXX" runat="server">
<ContentTemplate>
       […]
<ContentTemplate>
<asp:UpdatePanel>

<asp:UpdateProgress ID="updprogXXX" runat="server" AssociatedUpdatePanelID="updXXX" DisplayAfter="150">
<ProgressTemplate>
             <div id="divCalcola" align="center" style="top: 200px; position: absolute; top:0; bottom:0; right:0; left:0;background-color:rgba(0,0,0,0.5)">
                    <div id="divCalcolaInterno" align="center" style="border: solid 1px #000000; background: #FFFFFF;padding: 5px; width: 320px; height: 50px;margin-top:300px">
                        <asp:Label runat="server" ID="lblLoading2" Text="Calcolo del fatturato in corso..."><asp:Label>
                        <asp:Image ID="imgLoading2" runat="server" ImageAlign="left" SkinID="imgLoadingBar" /><br /><br />
                        <asp:Label runat="server" ID="lblLoadingInfo" Text="Questa operazione potrebbe durare diversi minuti" Font-Size="X-Small" >asp:Label>
                    <div>
                <div>               
        <ProgressTemplate>
<asp:UpdateProgress>

mercoledì 4 maggio 2011

Usare VB.Net e C# insieme in Asp.Net

Per poter utilizzare insieme, nella stessa Web Application Asp.net, classi scritte in diversi linguaggi come ad esempio in C# e in VB.net, è sufficiente utilizzare questa procedura:

Creare nella cartella App_Code due sottodirectory, chiamate ad Esempio VB e CS

App_Code
->VB
->CS

Poi, nel file web.config aggiungere le seguenti righe:
<system.web>
[...]
<compilation> <codeSubDirectories>
<add directoryName="CS"/>
<add directoryName="VB"/>
codeSubDirectories>
[...]
compilation>
system.web>

E voilà, il gioco è fatto!

PS: Ovviamente bisogna inserire tutte le classi in Vb.net in una cartella e tutte quelle in C# nell'altra...