SQL: Inserte flere poster samtidig
([StatusId]
,[HendelseTypeId]
,[Status]
,[LogtilKode]
,[Velgbar]
,[XStatus])
SELECT
15,1,'',1,0,'STARTSAK'
UNION ALL
SELECT
15,2,'',1,0,'STARTSAK'
union all
SELECT
15,3,'',1,0,'STARTSAK'
UNION ALL
SELECT
15,4,'',1,0,'STARTSAK'
UNION ALL
SELECT
15,5,'',1,0,'STARTSAK'
UNION ALL
SELECT
15,6,'',1,0,'STARTSAK'
UNION ALL
23,1,'Eierskifte',1,0,'EIERSKIFTE'
UNION ALL
SELECT
23,2,'Eierskifte',1,0,'EIERSKIFTE'
union all
SELECT
23,3,'Eierskifte',1,0,'EIERSKIFTE'
UNION ALL
SELECT
23,4,'Eierskifte',1,0,'EIERSKIFTE'
UNION ALL
SELECT
23,5,'Eierskifte',1,0,'EIERSKIFTE'
UNION ALL
SELECT
23,6,'Eierskifte',1,0,'EIERSKIFTE'
13,1,'Ok/Lest',1,0,'UNDER_ARBEID'
UNION ALL
SELECT
13,2,'Ok/Lest',1,0,'UNDER_ARBEID'
union all
SELECT
13,3,'Ok/Lest',1,0,'UNDER_ARBEID'
UNION ALL
SELECT
13,4,'Ok/Lest',1,0,'UNDER_ARBEID'
UNION ALL
SELECT
13,5,'Ok/Lest',1,0,'UNDER_ARBEID'
UNION ALL
SELECT
13,6,'Ok/Lest',1,0,'UNDER_ARBEID'
Generell funksjon for å eksportere en gridview til Excel
using System;
using System.IO;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;/// <summary>
/// Util for å exportere Gridview til Excel
/// </summary>
public class GridViewExportUtil
{/// <summary>
/// Exporter Gridview til Excel
/// </summary>
/// <param name="fileName"></param>
/// <param name="gv"></param>
public static void Export(string fileName, GridView gv)
{
Export(fileName, gv, "");
}/// <summary>
/// Exporterer GridView til Excel
/// </summary>
/// <param name="fileName"></param>
/// <param name="gv"></param>
/// <param name="styleSheet"></param>
public static void Export(string fileName, GridView gv, string styleSheet)
{
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader(
"content-disposition", string.Format("attachment; filename={0}", fileName));
HttpContext.Current.Response.ContentType = "application/ms-excel";using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter htw = new HtmlTextWriter(sw))
{
Table tbl=new Table();
TableRow rad=new TableRow();
tbl.Controls.Add(rad);
TableCell cell=new TableCell();if (gv.HeaderRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.HeaderRow);
}
foreach (GridViewRow row in gv.Rows)
{
GridViewExportUtil.PrepareControlForExport(row);
}
if (gv.FooterRow != null)
{
GridViewExportUtil.PrepareControlForExport(gv.FooterRow);
}cell.Controls.Add(gv);
rad.Controls.Add(cell);
tbl.Controls.Add(rad);tbl.RenderControl(htw);// hvis stylesheet er spesifisert ta det med
if (!String.IsNullOrEmpty(styleSheet))
{
try
{
StreamReader sr = new StreamReader(HttpContext.Current.Server.MapPath(styleSheet));string s = sr.ReadToEnd();sr.Close();HttpContext.Current.Response.Write("<HEAD><STYLE>");HttpContext.Current.Response.Write(s.ToString());HttpContext.Current.Response.Write("</STYLE></HEAD>");
}
catch { }}// skriv htmlwriter til response
HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
}
}
}/// <summary>
/// Erstatt kontroller med text
/// </summary>
/// <param name="control"></param>
private static void PrepareControlForExport(Control control)
{
for (int i = 0; i < control.Controls.Count; i++)
{
Control current = control.Controls[i];
if (current is LinkButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as LinkButton).Text));
}
else if (current is ImageButton)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as ImageButton).AlternateText));
}
else if (current is HyperLink)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as HyperLink).Text));
}
else if (current is DropDownList)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as DropDownList).SelectedItem.Text));
}
else if (current is CheckBox)
{
control.Controls.Remove(current);
control.Controls.AddAt(i, new LiteralControl((current as CheckBox).Checked ? "Ja" : "Nei"));
}if (current.HasControls())
{
GridViewExportUtil.PrepareControlForExport(current);
}
}
}
}
Attributt på Properties for å lagre i Viewstate
[LagreIViewState]
public bool VisPager
{
get;set;
}
[LagreIViewState(true)]
public bool VisPager
{
get;set;
}
[LagreIViewState(15)]
public int PageSize
{
get; set;
}
[LagreIViewState("Kunde ASC)]
public string Sortering{
get; set;
}
public class PageBase : PageBase
{
/// <summary>
/// Attributt for å kunne lagre propertier i viewstate på denne måten:
/// [LagreIViewState] public type variabelnavn...
/// </summary>
[AttributeUsage(AttributeTargets.Property)]
public class LagreIViewState : Attribute
{
object _DefaultVerdi = null;
public LagreIViewState(object DefaultVerdi)
{
_DefaultVerdi = DefaultVerdi;
}
public LagreIViewState()
{
}public object DefaultVerdi
{
get { return _DefaultVerdi; }
}}/// <summary>
///
/// </summary>
/// <param name="savedState"></param>
protected override void LoadViewState(object savedState)
{
base.LoadViewState(savedState);
PropertyInfo[] properties = GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
object[] attributes = property.GetCustomAttributes(typeof(LagreIViewState), true);
if (attributes.Length > 0)
{
if (ViewState[property.Name] != null)
{
property.SetValue(this, ViewState[property.Name], null);
}
}
}
}
protected override object SaveViewState()
{
PropertyInfo[] properties = GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
object[] attributes = property.GetCustomAttributes(typeof(LagreIViewState), true);
if (attributes.Length > 0)
{
ViewState[property.Name] = property.GetValue(this, null);
}
}
return base.SaveViewState();
}private void SettDefaultProperties()
{PropertyInfo[] properties = GetType().GetProperties();
foreach (PropertyInfo property in properties)
{
object[] attributes = property.GetCustomAttributes(typeof(LagreIViewState), true);
if (attributes.Length > 0)
{
LagreIViewState o = (LagreIViewState)attributes[0];
if (o.DefaultVerdi != null)
property.SetValue(this, o.DefaultVerdi, null);
}
}}void Page_Init(object sender, System.EventArgs e)
{
if (!Page.IsPostBack) SettDefaultProperties();
}
public partial class Hendelseside : PageBase{[LagreIViewState(true)]
public bool VisPager
{
get;set;
}
[LagreIViewState(15)]
public int PageSize
{
get;
set;
}
Vise sortering og hover på Gridview

TH.SortAsc
{
PADDING-RIGHT: 18px;
PADDING-LEFT: 5px;
BACKGROUND: url(../master/images/sort_asc.gif) #c48356 no-repeat right center
}
TH.SortDesc
{
PADDING-RIGHT: 18px;
PADDING-LEFT: 5px;
BACKGROUND: url(../master/images/sort_desc.gif) #c48356 no-repeat right center
}
.SortertRad { BACKGROUND-COLOR:#efefef}
.SortertAltRad { BACKGROUND-COLOR: #e3e3e3}
.SortertRadHover { BACKGROUND-COLOR: #c48356; color: White;}
.SortertAltRadHover { BACKGROUND-COLOR: #c48356; color: White;}
background-color:#fff;
}
tr.evenline, td.evenline {
background-color:#f2f2f2;
}
{
background-color: #f4a376;
}
tr.oddlineHover
{
background-color: #f4a376;
}
{
if(tr.className.indexOf("Hover")>0)
tr.className=tr.className.substring(0,tr.className.indexOf('Hover'))
else if(tr.className.length>0)
tr.className+="Hover";
var trs = tr.getElementsByTagName('TD');
for(var i=0; i<trs.length; i++)
{
if(trs[i].className.indexOf("Hover")>0)
trs[i].className=trs[i].className.substring(0,trs[i].className.indexOf('Hover'))
else if(trs[i].className.length>0)
trs[i].className+="Hover";
}
}
</script>
{
HentSorterering(out sortfelt, out retning);
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[kolonner[sortfelt].Indeks].CssClass =
retning == "ASC" ? "SortAsc" : "SortDesc";
}
else if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[kolonner[sortfelt].Indeks].CssClass = e.Row.RowIndex % 2 == 0 ? "SortertRad" : "SortertAltRad";
{
e.Row.Attributes.Add("onmouseover", "this.style.cursor='hand';setHover(this);");
e.Row.Attributes.Add("onmouseout", "setHover(this);");
Kjøre c# kode når et vindu lukkes
{
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>");
Page.ClientScript.RegisterStartupScript(this.GetType(), "retVerdi", script.ToString());
}
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
CMSUtils cms = new CMSUtils();
cms.SettCMSMenyFilter();
}
på toppen...
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;}");
Integrere Araxis merge med VS


Delegate event
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"];
....
Regulære uttrykk
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;
}
Keyboard shortcuts Visual Studio/C#
Keyboard shortcuts
http://www.codeproject.com/KB/tips/VSnetIDETipsAndTricks.aspx
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 |
|
|
|
|
Javascript: Finne elementer med delvis id
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;
}
}
}
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
}
}
}
Sql: Oppdatere Topp 100 poster
UPDATE TOP (100) Hendelse
SET Eier = ISNULL(Eier, 12345)
Sqlserver: Stored procedures: Returner flere verdier fra subquery
Dette er en utvidelse av en del av forrige post.
Her kjører vi selfjoin på en subquery for å kunne returnere flere verdier fra samme subquery:
CREATE PROCEDURE [dbo].[sp_ProduktlistingNy]
@dato datetime = NULL,
@leverandorid int = NULL
AS
BEGIN
IF @dato IS NULL SET @dato= getdate();
SELECT TOP (100) PERCENT P.ProduktID , P.LeverandorID, P.Navn, P.Betalingsinformasjon,
P.KravOmEpostFaktura, P.KravOmEfaktura, P.KravOmAvtalegiro, P.Landsdekkende,
P.Inaktiv, T.Termin, TYP.ProduktType,
TYP.Kortnavn, PV1.KraftPris, PV1.TidspunktInnmelding
FROM dbo.Produkter P
INNER JOIN
dbo.ProduktTyper TYP ON P.ProduktTypeID = TYP.ProduktTypeID
INNER JOIN
dbo.Terminer T ON P.TerminID = T.TerminID
LEFT OUTER JOIN
dbo.Prisvarsler PV1 ON (select TOP(1) ProduktID from dbo.PrisVarsler PV Where PV.ProduktID=P.ProduktID AND PV.GjelderFraDato<=@dato ORDER BY PV.GjelderFraDato) = PV1.ProduktID
WHERE (P.LeverandorID = @LeverandorId OR @LeverandorID is null)
ORDER BY P.LeverandorID, TYP.Kortnavn
END
Sqlserver: Stored procedures,valgfrie parametre og subquery i select-setning
Valgfrie parametre i en Stored procedure:Her defineres to valgfrie parametre.
De blir valgfrie fordi de har fått satt en defaultverdi - Null i dette tilfellet:
@dato datetime = NULL,
@leverandorid int = NULL
deretter blir @dato satt til dagens dato hvis den er null,
dvs hvis ikke @dato ble sendt inn som parameter (evt ble sendt inn med verdi null):
BEGIN
IF @dato IS NULL SET @dato= getdate();
@LeverandorID kan ikke løses på samme måten. Dersom den er tom dvs null kan vi ikke sette denne til en spesiell verdi for å returnere alle poster.
Å velge WHERE @LeverandorID = null fører IKKE til rett resultat.
I stedet bruker vi en OR setning som vil returnere true hvis @LeverandorID = null, nemlig:
WHERE
(dbo.Produkter.LeverandorID = @LeverandorId OR @LeverandorID is null)
Subquery/Select i select:
I enkelte tilfeller fører ikke en vanlig join av tabeller frem.
Under er et eksempel som kjører en subquery for å finne den nyeste prisen fra en relatert tabell med mange priser.
Husk paranteser rundt subqueryen og gi den et navn vha as:
Select …, dbo.ProduktTyper.Kortnavn, (select TOP(1)KraftPris from dbo.PrisVarsler Where ProduktID=dbo.Produkter.ProduktID AND GjelderFraDato<=@dato ORDER BY GjelderFraDato) as GjeldendePris
FROM dbo.Produkter ….
Dato fra sqlserver til PHP:
Hvordan konvertere en dato fra Sqlserver for bruk i PHP:
CONVERT(varchar, dbo.Produkter.Opprettet, 104) + ' ' + SUBSTRING(CONVERT(varchar, dbo.Produkter.Opprettet, 108), 1, 5) AS Opprettet,
Full listing av Stored procedure:
CREATE PROCEDURE [dbo].[sp_Produktlisting]
@dato datetime = NULL,
@leverandorid int = NULL
AS
BEGIN
IF @dato IS NULL SET @dato= getdate();
SELECT TOP (100) PERCENT dbo.Produkter.ProduktID , dbo.Produkter.LeverandorID, dbo.Produkter.Navn,
dbo.Produkter.Betalingsinformasjon,dbo.Produkter.KravOmEpostFaktura, dbo.Produkter.KravOmEfaktura,
dbo.Produkter.KravOmAvtalegiro, dbo.Produkter.Landsdekkende,
CONVERT(varchar, dbo.Produkter.Opprettet, 104) + ' ' + SUBSTRING(CONVERT(varchar,dbo.Produkter.Opprettet, 108), 1, 5) AS Opprettet,
dbo.Produkter.Inaktiv, CONVERT(varchar, dbo.Produkter.Oppdatert, 104) AS Oppdatert, dbo.Terminer.Termin, dbo.ProduktTyper.ProduktType,dbo.ProduktTyper.Kortnavn,
(select TOP(1)KraftPris from dbo.PrisVarsler Where ProduktID=dbo.Produkter.ProduktID AND GjelderFraDato<=@dato ORDER BY GjelderFraDato) as GjeldendePris
FROM dbo.Produkter INNER JOIN
dbo.ProduktTyper ON dbo.Produkter.ProduktTypeID = dbo.ProduktTyper.ProduktTypeID INNER JOIN
dbo.Terminer ON dbo.Produkter.TerminID = dbo.Terminer.TerminID
WHERE (dbo.Produkter.LeverandorID = @LeverandorId OR @LeverandorID is null)
ORDER BY dbo.Produkter.LeverandorID, dbo.ProduktTyper.Kortnavn
c#: Konvertere fra Array til List
string[] arr=ws.GetSomething();List<string> liste=new List<string>();liste.AddRange(arr);
List<string> liste=new List<string>();liste.AddRange(ws.GetSomething());
XSL: Variabler og parametre
<xsl:when test="$TypeProdukt='Trygghet'">
<xsl:variable name="linkerspar">1
</xsl:variable>
<xsl:when test="$TypeProdukt= 'Forening'">
<xsl:variable name="linkerspar">2
</xsl:variable>
</xsl:choose>
<xsl:when test="$TypeProdukt='Trygghet'">1
<xsl:when test="$TypeProdukt= 'Forening'">2
</xsl:choose>
<xsl:output method="html"/>
<xsl:choose>
<xsl:when test="//FILE/REC[@NAME=Otto'] or //FILE/REC[@NAME='Jenny']>Venn</xsl:when>
<xsl:otherwise>Kontakt</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:with-param name="Aktiv">Dekninger</xsl:with-param>
</xsl:call-template>
<xsl:param name="Aktiv">Person</xsl:param>
....
<xsl:param name="Aktiv">Person</xsl:param>
<xsl:variable name="linkertrygghet">
<link ID='Person'>Personopplysninger</link>
<link ID='Dekninger'>Dekninger</link>
<link ID='Begunstigelse'>Begunstigelse</link>
<link ID='Pantsettelse' >Pantsettelse</link>
<link ID='Innbetaling' >Innbetaling</link>
<link ID='Avtalegiro' >Avtalegiro</link>
<link ID='Raadgiver' >Rådgiver</link>
</xsl:variable>
<xsl:variable name="linkerforening">
<link ID='Person'>Personopplysninger</link>
<link ID='Innbetaling' >Innbetaling</link>
<link ID='Avtalegiro' >Avtalegiro</link>
<link ID='Raadgiver' >Rådgiver</link>
</xsl:variable>
<link ID='Person'>Personopplysninger</link>
<link ID='InnLiv'>Innbetaling</link>
<link ID='UtLiv'>Utbetaling</link>
<link ID='BegunstLiv'>Begunstiget</link>
<link ID='Avtalegiro'>Avtalegiro</link>
<link ID='Raadgiver'>Rådgiver</link>
</xsl:variable>
<xsl:choose>
<xsl:when test="$TypeProdukt='Trygghet'">
<xsl:call-template name='laglinker'>
<xsl:with-param name='Aktiv' select='$Aktiv'></xsl:with-param>
<xsl:with-param name='linker' select='$linkertrygghet'></xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:when test="$TypeProdukt= 'Forening'">
<xsl:call-template name='laglinker'>
<xsl:with-param name='Aktiv' select='$Aktiv'></xsl:with-param>
<xsl:with-param name='linker' select='$linkerforening'></xsl:with-param>
</xsl:call-template>
</xsl:when>
<xsl:when test="$TypeProdukt = 'Spar'">
<xsl:call-template name='laglinker'>
<xsl:with-param name='Aktiv' select='$Aktiv'></xsl:with-param>
<xsl:with-param name='linker' select='$linkerspar'></xsl:with-param>
</xsl:call-template>
</xsl:when>
</xsl:choose>
<!-- lag linker basert på liste over linker i param-->
<xsl:template name="laglinker">
<xsl:param name="Aktiv">Person</xsl:param>
<xsl:param name="linker"></xsl:param>
<xsl:choose>
<xsl:when test="@ID=$Aktiv">
<span class="aktiv">
<xsl:value-of select="."/>
</span>
</xsl:when>
<xsl:otherwise>
<a>
<xsl:attribute name="href">
#<xsl:value-of select="@ID" />
</xsl:attribute>
<xsl:value-of select="."/>
</a>
</xsl:choose>
</xsl:for-each>
No comments :
Post a Comment