Cás Gnó:
Bhfeidhm ar fud na fiontraíochta de MOSS do comhlacht déantúsaíochta le 30+ láithreáin agus cúpla dosaen ranna corparáideach.
Gnó Cuspóir:
In ainneoin an iliomad grúpaí gnó (ranna, suímh, etc), Ba chóir sonraí áirithe a chothabháil ag an leibhéal domhanda. Mar shampla, liosta máistir údarásach de gach suíomh coirp de chuid na cuideachta (e.g. áiseanna déantúsaíochta, ionaid stóras, oifigí díolacháin) Ba chóir a choinneáil i suíomh lárnach.
Fadhb Teicniúil:
Cuireadh an tacsanomaíocht fiontraíochta i bhfeidhm ag baint úsáide as bailiúcháin suíomh il. Ba mhaith linn a thaitin a chruthú ar an liosta údarásach de láithreacha fisiciúil i liosta SSU saincheaptha. Ansin,, nuair is gá dúinn a bheith colún i ndáil le cineál ábhar (nó colún a chur le liosta nó leabharlann doc) go suímh corparáideach atá, we would create a column using the "lookup" Cineál sonraí daingean agus pointe leis an liosta máistir.
Ar an drochuair, lookup datatypes must access a source list "locally" rud a chiallaíonn nach féidir ár liosta údarásach span bailiúcháin láithreán.
Réiteach Teicniúil:
Chur i bhfeidhm i ndáil le cineál sonraí a saincheaptha nua i bhfeidhm bunaithe ar SPField agus ionadaíocht mar DropDownList sa Chomhéadain bhfuil ListItems populate ón liosta SFP máistir.
Cruthaithe againn bailiúchán láithreán nua ar a dtugtar "http://localhost/EnterpriseData". Tá, we created a custom list named "Corporate Locations". This list just uses the standard "Title" réimse go bhfuil an liosta de na suímh corparáideach iarbhír.
Seo a leanas roinnt céimeanna a hAon scoite a chruthú cineál sonraí a saincheaptha i SSU. Tá siad:
- Sainmhínigh rang a oidhreacht ó SPField (d'fhéadfadh ceann amháin hoidhreacht ó réimsí eile más gá).
Seo é an cód don:
poiblí ranga XYZZYCorporateLocationField : SPFieldText
{
poiblí XYZZYCorporateLocationField
(SPFieldCollection réimsí, teaghrán typeName, teaghrán displayName)
: bonn(réimsí, typeName, displayName) { }
poiblí XYZZYCorporateLocationField
(SPFieldCollection réimsí, teaghrán displayName)
: bonn(réimsí, displayName) { }
poiblí shárú BaseFieldControl FieldRenderingControl
{
fháil
{
BaseFieldControl control = nua XYZZYCorporateLocationFieldControl();
control.FieldName = seo.Ainm Inmheánach;
ar ais control;
} //fháil
} // fieldrenderingcontrol
poiblí shárú teaghrán GetValidatedString(réad luach)
{
más rud é (seo.Required || value.ToString().Cothrom(Teaghrán.Folamh))
{
caith nua SPFieldValidationException ("Department is not assigned.");
}
ar ais bonn.GetValidatedString(luach);
} // getvalidatedstring
} // XYZZYCorporateLocation
- Sainmhínigh rang eile a fhaigheann ó rialú réimse bonn, mar atá i:
poiblí ranga XYZZYCorporateLocationFieldControl : BaseFieldControl
{
chosaint DropDownList XYZZYCorporateLocationSelector;
chosaint shárú teaghrán DefaultTemplateName
{
fháil
{
ar ais "XYZZYCorporateLocationFieldControl";
}
} // DefaultTemplateName
poiblí shárú réad Luach
{
fháil
{
EnsureChildControls();
ar ais seo.XYZZYCorporateLocationSelector.SelectedValue;
} // fháil
leagan
{
EnsureChildControls();
seo.XYZZYCorporateLocationSelector.SelectedValue = (teaghrán)seo.ItemFieldValue;
} // leagan
} // override object Value
chosaint shárú neamhní CreateChildControls()
{
más rud é (seo.Field == náid || seo.ControlMode == SPControlMode.Taispeáin)
ar ais;
bonn.CreateChildControls();
seo.XYZZYCorporateLocationSelector =
(DropDownList)TemplateContainer.FindControl("XYZZYCorporateLocationSelector");
más rud é (seo.XYZZYCorporateLocationSelector == náid)
caith nua Eisceacht("ERROR: Cannot load .ASCX file!");
más rud é (!seo.Page.IsPostBack)
{
ag baint úsáide as (SPSite site = nua SPSite("http://localhost / enterprisedata"))
{
ag baint úsáide as (SPWeb web = site.OpenWeb())
{
SPList currentList = web.Lists["Corporate Locations"];
foreach (Spit XYZZYCorporateLocation i currentList.Items)
{
más rud é (XYZZYCorporateLocation["Title"] == náid) leanúint;
teaghrán theTitle;
theTitle = XYZZYCorporateLocation["Title"].ToString();
seo.XYZZYCorporateLocationSelector.Items.Add
(nua ListItem(theTitle, theTitle));
} // foreach
} // using spweb web = site.openweb()
} // using spsite site = new spsite("http://localhost/enterprisedata")
} // if not a postback
} // CreateChildControls
} // XYZZYCorporateLocationFieldControl
An gcód thuas i bhfeidhm go bunúsach leis an loighic phobalú an DropDownList le luachanna ón liosta saincheaptha SFP suite ag http://localhost/enterprisedata and named "Corporate Departments".
Sainmhínithe mé an dá rang i gcomhad cs amháin., chéile é agus chuir sé isteach ar an GAC (láidir ag teastáil, ar ndóigh).
-
A chur i bhfeidhm teimpléad rialaithe (.ascx) mar a thaispeántar:
<%@ Rialú Teanga="C#" Inherits="Microsoft.SharePoint.Portal.ServerAdmin.CreateSiteCollectionPanel1,Microsoft.SharePoint.Portal,Leagan = 12.0.0.0, Cultúr = neodrach,PublicKeyToken = 71e9bce111e9429c" compilationMode="Always" %>
<%@ Cláraigh Tagprefix="wssawc" Ainmspás="Microsoft.SharePoint.WebControls" Tionól="Microsoft.SharePoint, Leagan = 12.0.0.0, Cultúr = neodrach, PublicKeyToken = 71e9bce111e9429c" %> <%@ Cláraigh Tagprefix="SharePoint" Ainmspás="Microsoft.SharePoint.WebControls" Tionól="Microsoft.SharePoint, Leagan = 12.0.0.0, Cultúr = neodrach, PublicKeyToken = 71e9bce111e9429c" %>
<SharePoint:Teimpléad Rindreála ID="XYZZYCorporateLocationFieldControl" runat="server">
<Teimpléad>
<asp:DropDownList ID="XYZZYCorporateLocationSelector" runat="server" />
</Teimpléad>
</SharePoint:Teimpléad Rindreála>
An thuas shábháil i c:\comhaid clár comhaid coitianta Microsoft roinnte síntí fhreastalaí gréasáin 12 controltemplates.
- Mar fhocal scoir, linn a chruthú comhad XML a shábháil isteach sa ..... 12 XML eolaire. Tá sé seo CAML a shainmhíníonn ár cineál sonraí saincheaptha agus do mo mar shampla, Breathnaíonn mar seo:
<?xml leagan="1.0" ionchódú="utf-8" ?>
<FieldTypes>
<FieldType>
<Réimse Ainm="TypeName">CorporateLocations</Réimse>
<Réimse Ainm="ParentType">Téacs</Réimse>
<Réimse Ainm="TypeDisplayName">Corporate Locations</Réimse>
<Réimse Ainm="TypeShortDescription">All XYZZY Corporate locations including manufacturing or other facilities.</Réimse>
<Réimse Ainm="UserCreatable">TRUE</Réimse>
<Réimse Ainm="ShowInListCreate">TRUE</Réimse>
<Réimse Ainm="ShowInDocumentLibraryCreate">TRUE</Réimse>
<Réimse Ainm="ShowInSurveyCreate">TRUE</Réimse>
<Réimse Ainm="ShowInColumnTemplateCreate">TRUE</Réimse>
<Réimse Ainm="FieldTypeClass">Conchango.XYZZYCorporateLocationField, XYZZYCorporateLocationField, Leagan 1.0.0.0 =, Cultúr = neodrach, PublicKeyToken=b0b19e85410990c4</Réimse>
<RenderPattern Ainm="DisplayPattern">
<Athraigh>
<Expr>
<Colún />
</Expr>
<Cás Luach=""/>
<Réamhshocrú>
<HTML>
<![CDATA[<span style="color:Red"><b>]]>
</HTML>
<Colún SubcolumnNumber="0" HTMLEncode="TRUE"/>
<HTML><![CDATA[</b></réise>]]></HTML>
</Réamhshocrú>
</Athraigh>
</RenderPattern>
</FieldType>
</FieldTypes>
This XML file adds the custom data type to the WSS "library" agus oireann sé suas i gcoinne an tionól GAC'd.
Tar éis bogadh go léir na píosaí i bhfeidhm, iisreset ar an fhreastalaí agus ba chóir dó tús go léir ag obair nicely.
ag baint úsáide as System.Web.UI;
ag baint úsáide as System.Web.UI.WebControls;
I am attempting to implement your solution. However I instead of DropDownList, I only have the option for a DropDownChoiceList. Do you happen to know how to add items to a DropDownChoiceList? Táimid ag baint úsáide SharePoint 2007 SP1 agus Stiúideo Amharc 2005 SP1.