CAONAIGH: Sampla Feidhme - Saincheaptha Cineál Sonraí

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:

  1. 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

  1. 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).

  1. 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.

  1. 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.

3 smaointe ar "CAONAIGH: Sampla Feidhme - Saincheaptha Cineál Sonraí

  1. Alexander
    Hi Paul,
    Ar an gcéad dul, raibh maith agat as an t-alt, mar tá sé an-suimiúil. Ach ceist amháin;
    An bhfuil a fhios agat má tá sé posible i gcóir chun gceart i ndáil le cineál réimse saincheaptha i bhfianaise datasheet de liosta?
    Mar tá gach cineál réimse saincheaptha a chruthú mé é a thaispeántar mar inléite amháin i bhfianaise datasheet (agus an MSDN, mar shampla, ní cabhrú liom i bhfad an- :-S).
    Go raibh maith agat
    Freagra
  2. Lyndsay
    Figured sé amach! Ach is gá a chur

    ag baint úsáide as System.Web.UI;
    ag baint úsáide as System.Web.UI.WebControls;

    Freagra
  3. Lyndsay

    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.

    Freagra

Leave a Reply

Ní thabharfar do sheoladh r-phoist a fhoilsiú. Réimsí riachtanacha atá marcáilte *