Henris blogg

 

Kjøre c# kode når et vindu lukkes

Ved å bruke Ajax kan man kalle C# kode ved body.unload osv.
 
Koden her sjekker om en verdi er satt som indikerer at record er endret (document.getElementById('" + oppdatert.ClientID + "').value!='')
Hvis den er endret kalles c# metoden OppdaterMeny.
 
 
Sett enablepagemethods til true i scriptmanager:

Aspx-fil
<asp:ScriptManager ID="script1" runat="server" />
 


Legg til javascript som kaller c# metode (handleClose)
og kall den ved body.onUnload
 
Javascript
 private void JavaScript()
    {
        StringBuilder script = new StringBuilder();
        script.Append("<script language='javascript'>");
        script.Append("function retVerdi(){window.returnValue=document.getElementById('" + oppdatert.ClientID + "').value;}");
        script.Append("function handleClose(){if(document.getElementById('" + oppdatert.ClientID + "').value!='') PageMethods.OppdaterMeny();}");         script.Append("</script>");
 
        Body.Attributes.Add("OnUnload", "handleClose(); retVerdi();");
        Page.ClientScript.RegisterStartupScript(this.GetType(), "retVerdi", script.ToString());
    }
 
 
Definer c# metode som en WebMotode så den kan nås fra Ajax:
 
C# metode som kalles
[WebMethod]
public static void OppdaterMeny()
    {
     
      if (HttpContext.Current.User.Identity.IsAuthenticated)
        {
            CMSUtils cms = new CMSUtils();
            cms.SettCMSMenyFilter();
 
        }
    }
dvs at du trenger en
using System.Web.Services;
på toppen...

 

 
 
 
Se evt her for mer info: http://aspalliance.com/1294_CodeSnip_Handle_Browser_Close_Event_on_the_ServerSide.all
 
 

Comments [0]

Javascript åpne vindu, refreshe parent ved lukking. Også Ajax


script.Append( "function openModalWindow(side,id, Aktoernummer, HendelsetypeID, Laast, UnikID)\n");
script.Append( "{\n");
script.Append( "var res = window.showModalDialog(side + '?HendelseInformasjonID='+id + '&Aktoernummer=' + Aktoernummer + '&HendelsetypeID=' + HendelsetypeID + '&Laast=' + Laast + '&UnikID=' + UnikID,null,'status:no;dialogWidth:750px;dialogHeight:600px;center:yes;dialogHide:true;help:no;scroll:yes');\n");
script.Append( "if(res!=null)\n");
script.Append("{ __doPostBack('" + update1.ClientID + "', ''); }\n");
script.Append( "}\n");
script.Append( "</script>\n");


Update1 er et Ajax UpdatePanel

For å oppdatere en vanlig side uten Ajax:
script += "{ __doPostBack('__Page', 'MyCustomArgument'); }\n";

 

I siden/vinduet som åpnes:

script.Append("<script language='javascript'>");
script.Append("function retVerdi(verdi){window.returnValue=verdi;}");

Comments [0]

Araxis merge hurtigtaster

Flytte til neste endring
 
Ctrl - PageDown
 
Forrige endring:
 
Ctrl - PageUp
 
 
 
 

Comments [0]

Integrere Araxis merge med VS

For å integrere Araxis merge med Visual Studio:
 
I Visual Studio:
Tools - Options - Source control - Visual Studio Team Foundation Server -
[Configure User Tools ]
 
Add:
 
Compare:
/wait /2 /title1:%6 /title2:%7 %1 %2
 
 
Merge:
 /wait /swap /a3 /3 /title1:%6 /title2:%7 /title3:%8 %1 %2 %3 %4
 
 
Les evt. mer her:
http://blogs.msdn.com/jmanning/articles/535573.aspx
og her:
http://readcommit.blogspot.com/2008/04/araxis-merge-integration-with-tfs-team.html
 

Comments [0]

Delegate event

Gridview usercontrol som delegerer RowDataBound
 

i Usercontrol

public partial class UserControls_Felles_Grid : SatsUserControlBase
{
    public delegate void RowDataBound(object sender, GridViewRowEventArgs e);
    public event RowDataBound GridRowDataBound;

protected void gridview_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       OnRowDataBound(e);
    }


    protected void OnRowDataBound(GridViewRowEventArgs e)
    {
        if (GridRowDataBound != null)
            GridRowDataBound(this, e);
    } 

....

}

 

 

i side som benytter usercontrol

.aspx

<%@ Page Language="C#" CodeFile="Hendelser.aspx.cs" Inherits="Hendelseside" Title="Hendelser" %>

<%@ Register Src="~/UserControls/Felles/Grid.ascx" TagName="Grid" TagPrefix="uc" %>

<asp:Content ID="MainContent" ContentPlaceHolderID="hovedInnhold" runat="server">
        <table>
            <tbody>
                <tr>
                    <td>
                        <uc:Grid ID="gv" runat="server" />
                    </td>
                </tr>
...

</asp:Content />

.cs

protected override void OnInit(EventArgs e)
    {

        gv.GridRowDataBound += new UserControls_Felles_Grid.RowDataBound(gv_GridRowDataBound);
}


 void gv_GridRowDataBound(object sender, GridViewRowEventArgs e)
    {
 if (e.Row.RowType == DataControlRowType.DataRow)
        {
            DataRowView rad = e.Row.DataItem as DataRowView;
            // HendelseinformasjonID
            TableCell cell = e.Row.Cells[gv.Kolonner["HendelseInformasjonID"].Indeks];
            string HendelseID = cell.Text;

            cell.ToolTip = rad["Beskrivelse"];
....

 

 

Comments [0]

Regulære uttrykk

Brukt i Visual Studio for å erstatte
 
script += "<her kommer noe/>";
 
til
 
script.Append("<her kommer noe/>");
 
(legg merke til at sluttparantes blir lagt til bakerst samtidig...:
 
Trykk Ctrl - H i VS for Søk og Replace
og velg Use - Regular expressions
 
 
Find what:
    script \+= {.*};
 
 
Replace with:
    script.Append( \1);
 
 
Følgende er spesielt:
 
Søkestreng:
\+= gir  +=  \ brukes som escape character
 
{.*} : {} betyr tag expression (lagre som "variabel")
.* betyr 0 eller flere av en hvilken som helst karakter
 
Erstattstreng:
\1 : Tagged expression 1
 
 
That's it
Mvh
Henri
 

Comments [0]

Utvide XML-fil med ekstra element

if (foreningsNummer == "22" && ordningsNummer == "005")
{
 
 XmlDocument data = new XmlDocument();
 data.Load(xmlr);
 XmlNode nodedekning = data.SelectSingleNode("/Dekninger/Dekning");
 XmlElement ytelse = data.CreateElement("Ytelse");
 ytelse.InnerXml = PremieTUK80.ValgtYtelse;
 nodedekning.AppendChild(ytelse);
 prisListe = data.OuterXml;
}

Comments [0]

Keyboard shortcuts Visual Studio/C#

Keyboard shortcuts

http://www.codeproject.com/KB/tips/VSnetIDETipsAndTricks.aspx

http://www.microsoft.com/downloads/details.aspx?familyid=e5f902a8-5bb5-4cc6-907e-472809749973&displaylang=en

 

 

F2 Refactor - Rename

IntelliSense/Complete word/suggest

Ctrl - space , evt Ctrl - K, Ctrl  - W

 

Parameter tips

Ctrl - Shift - Space

Edit

ParameterInfo

 

Definisjon

F12                 - Gå til definisjon av variable, metode osv

 

 

Generate Method Stub

Ctrl+K, Ctrl+M

Edit

GenerateMethodStub

 

Slå sammen/ Collapse

Ctrl - M, M      Prosedyre åpne/lukke prosedyre

Ctrl - M, O      slå alt sammen til prosedyredefinisjoner

Ctrl - M, L       av/på alt i vindu

 

Topp/bunn prosedyre, region, ””

  • Ctrl - Å                       Hopp til start/slutt av {  } / region / quote
  • Ctrl - Shift - Å            Merk fra topp til slutt

 

Kopiere/paste flere forskjellige steder samtidig

  • Kopiere/paste fra flere kilder/steder.
    Merk det du vil kopiere og Ctrl - C, merk neste sted og Ctrl -C osv.
    Paste ved å trykke Ctrl - Shift - V evt Ctrl - Shift - Ins og gjenta evt til du finner rett paste

Formatere dokument (automatisk)

Ctrl+E, Ctrl+D

Edit

FormatDocument

 

Søk

  • Ctrl - I             inkrementell søk,
  • F3 for neste
  • Ctrl - Shift - I for baklengs

 

Transpose/ bytte plass

Linjer:  Shift - Alt - T  : linjen du står på bytter plass med den under

 

Uppercase/Lowercase

Ctrl+Shift+U

Edit

MakeUppercase

Ctrl+U

Edit

MakeLowercase

 

Åpne Kodevindu etc

 

  • Properties (F4),
  • Solution Explorer (Ctrl+Alt+L),
  • Output Window (Ctrl+Alt+O),
  • Task List (Ctrl+Alt+K)

 

Redigering

Ctrl+Del

Edit

WordDeleteToEnd

Ctrl+Del

Edit

WordDeleteToEnd

Ctrl+K, S

Edit

SurroundWith

 

 

Refactor

Ctrl+R, E

Refactor

EncapsulateField

F2

 

Rename

 

 

 

 

Comments [0]

Javascript: Finne elementer med delvis id

//Gjøre noe med første/eneste som har partid
function GetFirstElmentWithPartialID(partid)
{
   re = new RegExp(partid); 
   for(i = 0; i < document.forms[0].elements.length; i++)
   {
      elm = document.forms[0].elements[i]
      if (re.test(elm.id))
      {
        //do something
        return elm;
        break;
      }
   }
}
 
//Gjøre noe med alle som har partid
function GetAllElmentsWithPartialID(partid)
{
   re = new RegExp(partid); 
   for(i = 0; i < document.forms[0].elements.length; i++)
   {
      elm = document.forms[0].elements[i]
      if (re.test(elm.id))
      {
        //do something       
      }
   }
}

Comments [0]

Sql: Oppdatere Topp 100 poster

Oppdaterer de 100 første postene med eier=null:
 

UPDATE    TOP (100) Hendelse

SET              Eier = 12345

Where Eier Is Null;

Comments [0]