CHUVASH.eu
  • About
  • Search

Posts

August 29, 2011

Registrera javascript i feature

Om det inte passar att javascript i masterpage eller egen webpart, registrera det som customaction och aktivera feature. Läs mer här. Här är ett exempel:

<CustomAction 
		Location="ScriptLink"
		ScriptSrc="~sitecollection/\_layouts/MyProject/awesome.js"
		Sequence="101">
</CustomAction>
read more
August 26, 2011

Hämta innehåll på något element i contentEditorWebpart

Här

string content = welcomeWebpart.Content.InnerText;

//get heading
string heading = string.Empty;
Match m = Regex.Match(content, @"(

.\*?
====

)", RegexOptions.Singleline);
if (m.Success)
{
	heading = m.Groups\[1\].Value;
}
heading = Regex.Replace(heading, @"(

|
=

)", "", RegexOptions.Singleline);
welcomeValues.Add("#HEADING#", heading);
read more
August 26, 2011

Hämta lokaliserad sträng från App_GlobalResources

Om man har en sträng i App_GlobalResources som man vill hämta ifrån koden, kör:

string text = HttpContext.GetGlobalResourceObject("MyProject\_Global", "submit\_label") as string;
read more
August 25, 2011

Rättigheter på CustomAction

Om man vill begränsa vem so kan se kan man lägga till “Rights”-attribut på CustomAction. Ett exempel: Hela listan finns på msdn.

read more
August 23, 2011

Ändra content i ContentEditorWebPart

Det finns ett exempel här.

//defaultAspx är sidan (SPListItem i Sidor)
//måste checkas ut först
//mgr är WebPartManager
//wp är contentEditorWebPart
web.AllowUnsafeUpdates = true;
XmlDocument xmlDoc = new XmlDocument();
XmlElement xmlElement = xmlDoc.CreateElement("Content");
xmlElement.InnerText = ((Microsoft.SharePoint.WebPartPages.ContentEditorWebPart)wp).Content.InnerText.ToString();
xmlElement.InnerText = xmlElement.InnerText.ToString().Replace("#HEADING#", "Welcome for welcome");
wp.Content = xmlElement;
mgr.SaveChanges(wp);
defaultAspx.File.CheckIn("");
defaultAspx.File.Publish("");
web.AllowUnsafeUpdates = false;
```Man måste skapa nytt XmlDocument och XmlElement, om man försöker skriva direkt till wp.Content.InnerText kommer det inte uppdateras. I det här fallet, byter vi ut #HEADING# mot något mer passande.
read more
August 23, 2011

styra css för modaldialog

Säg du har application page med samma master page som resten av portalen. Men vad göra om du vill ändra css bara om den är i modal dialog. Overrida dina css-regler genom att lägga till .ms-dialog. .ms-dialog är css-klassen som läggs på html-taggen om sidan laddas i modaldialog:

html.ms-dialog body {
  background-color:white;
}
read more
August 23, 2011

jquery confirm

Ett mycket trevligt addin till jquery: jquery confirm.

read more
August 23, 2011

Ge andra rättigheter på default.aspx

Om man inte vill medlemmarna på SPWeb rättighet att redigera första sidan hur som helst, måste man bryta arvet på Sidor/default.aspx. Lätt att göra det manuellt (Site Actions - Show all Content - Pages - default.aspx - dokumenträttigheter). I koden kan man göra det så här:

//first find SPListItem defaultAspx
//then find SPGroup members (perhaps via web.AssociatedMemberGroup
defaultAspx.BreakRoleInheritance(true);
defaultAspx.RoleAssignments.RemoveFromCurrentScopeOnly(members);
SPRoleAssignment roles = new SPRoleAssignment(members);
SPRoleDefinition perms = web.RoleDefinitions.GetByType(SPRoleType.Reader);
roles.RoleDefinitionBindings.Add(perms);
defaultAspx.RoleAssignments.Add(roles);
read more
August 23, 2011

Sök på hela SPSite

När man skapar en egen searchbox, kan det vara lite meckigt att få till söken rätt. För att kunna söka på hela SPSite, oberoende var man är (subsite), ange property:

<Property Name="DropDownMode">**HideDD\_useDefaultScope**</Property>

Det kan hända att du måste skapa en egen scope.

read more
August 21, 2011

PeopleEditor med ifyllt värde

I vissa fall är det bra att ha ett ifyllt värde i PeoplePicker, till exempel, namn på personen som kör koden. Det finns olika beskrivningar om hur man gör det. Allmänt, och mer specifikt för webparts. Jag har även testat kod från boken Sharepoint 2010 as a Development Platform:

private PeopleEditor peopleEditor;
private void EnsureChildControls()
{
  peopleEditor = new PeopleEditor();
  peopleEditor.AutoPostBack = true;
  peopleEditor.ID = "MyPeopleEditor";
  peopleEditor.AllowEmpty = false;
  peopleEditor.MultiSelect = true;
  peopleEditor.SelectionSet = "User,SPGroup" ;
  MyPanel.Controls.Add(peopleEditor);
}
protected void initPeopleEditor()
{
  PickerEntity entity = new PickerEntity();
  entity.Key = SPContext.Current.Web.CurrentUser.LoginName;
  // Make sure the entity is correct
  entity = peopleEditor.ValidateEntity(entity);
  ArrayList entityArrayList = new ArrayList();
  entityArrayList.Add(entity);
  peopleEditor.UpdateEntities(entityArrayList);
}
```Problemet med denna kod är att man får felet "Ingen exakt matchning" och man kan inte submitta. I application pages kan man enkelt fylla i aktuella användaren genom att ändra **CommaSeparatedAccounts** property i **Page\_Load**\-metoden.

peopleEditor.CommaSeparatedAccounts = SPContext.Current.Web.CurrentUser.LoginName;

read more
  • ««
  • «
  • 42
  • 43
  • 44
  • 45
  • 46
  • »
  • »»
© CHUVASH.eu 2026