You will not need to dispose SPContext,

As a general rule if we create an object only then we dispose it..

On Fri, Nov 4, 2011 at 11:35 AM, Paul Noone <
paul.no...@ceosyd.catholic.edu.au> wrote:

> Damn. I may need to trim that even further. J****
>
> Suggestions?****
>
> ****
>
> Incidentally, I am using a DropDownList control and the following worked a
> treat. Never ceases to amaze me just how simple these things are when you
> know how.****
>
> Huge thanks to Techardinal’s series on Editor 
> Parts<http://blog.techardinal.com/categories/263/web-part-development.aspx>.
> Making sense out of the dark arts. J****
>
> public class ListSettingsPart: EditorPart****
>
>     {****
>
>         // Declare custom editor parts here****
>
>         DropDownList SortByCol = new DropDownList();****
>
> ** **
>
>         // Get filterable columns for the DropDownList****
>
>         private void popSortByCol_dd()****
>
>         {****
>
>             // Get reference to the web part****
>
>             LightBox lbWebPart = (LightBox)WebPartToEdit;****
>
>             // Get list and field collection****
>
>             SPList imageLib = SPContext
> .Current.Web.Lists[lbWebPart.oListName];****
>
>             SPFieldCollection fieldsCollection = imageLib.Fields;****
>
> ** **
>
>             foreach (SPField field in fieldsCollection)****
>
>             {****
>
>                 // Get only filterable fields****
>
>                 if (field.Filterable)****
>
>                 {****
>
>                     SortByCol.Items.Add(new ListItem {Text = field.Title,
> Value = field.InternalName });****
>
>                 } ****
>
>             }****
>
> ** **
>
>         }****
>
> ** **
>
>         // Create our controls****
>
>         protected override void CreateChildControls()****
>
>         {****
>
>             // Clear any existing controls****
>
>             this.Controls.Clear();****
>
> ** **
>
>             // Create the custom control panel ****
>
>             Panel panListSettings = new Panel();****
>
> ** **
>
>             // Create SortByCol label****
>
>             Label labSortByCol = new Label();****
>
>             labSortByCol.Text = "SortBy column:";****
>
>             panListSettings.Controls.Add(labSortByCol);****
>
>             // Populate the dropdownlist****
>
>             popSortByCol_dd();****
>
>             SortByCol.ToolTip = "Select a column to sort by.";****
>
>             SortByCol.AutoPostBack = true;****
>
>             panListSettings.Controls.Add(SortByCol);****
>
>            // Add the custom control panel****
>
>             this.Controls.Add(panListSettings);****
>
>         }****
>
> ** **
>
> *From:* ozmoss-boun...@ozmoss.com [mailto:ozmoss-boun...@ozmoss.com] *On
> Behalf Of *Paul Noone
> *Sent:* Friday, 4 November 2011 8:31 AM
> *To:* ozMOSS
> *Subject:* RE: Return only spfields that are filterable****
>
> ** **
>
> J Great. That’s exactly what I was after. Thank you!****
>
> One more question surrounding “using”. Whenever I use using I get web part
> errors saying that the data has already been disposed. This usually occurs
> when trying to edit the web part properties.****
>
> As a result, I now just do the folowing but am unsure as to whether this
> needs to be disposed at some point?****
>
> try****
>
> {****
>
>     oList = SPContext.Current.Web.Lists[oListName];****
>
> ** **
>
> *From:* ozmoss-boun...@ozmoss.com [mailto:ozmoss-boun...@ozmoss.com] *On
> Behalf Of *Salman Ahmad
> *Sent:* Thursday, 3 November 2011 6:29 PM
> *To:* ozMOSS
> *Subject:* Re: Return only spfields that are filterable****
>
> ** **
>
> my bad, I missed actual condition, ****
>
>  ****
>
>                 foreach (SPField field in fieldsCollection)                 { 
>                     if (field.Filterable)                     {               
>           Console.WriteLine(field.Title);                         
> fieldsList.Add(field);                     }                 }****
>
>  ****
>
> Cheers,****
>
>  ****
>
> *From:* Salman Ahmad <salman.ah...@msn.com> ****
>
> *Sent:* Thursday, November 03, 2011 11:24 AM****
>
> *To:* ozMOSS <ozmoss@ozmoss.com> ****
>
> *Subject:* Re: Return only spfields that are filterable****
>
>  ****
>
> Hi Paul, ****
>
>  ****
>
> Here is a sample you can start with. ****
>
>  ****
>
>             using(SPSite site = new SPSite("http://localhost";))
>             using (SPWeb web = site.OpenWeb())
>             {
>                 List<SPField> fieldsList = new List<SPField>();
>
>                 SPFieldCollection fieldsCollection = web.Fields;
>
>                 foreach (SPField field in fieldsCollection)
>                 {
>                     Console.WriteLine(field.Title);
>                     fieldsList.Add(field);
>                 }
>             }****
>
>  ****
>
> Use fieldsList to populate your DropDownList.****
>
>  ****
>
> You can also get Fields Collection for your lists in the same way, ****
>
>  ****
>
> Cheers,****
>
> Salman****
>
>  ****
>
> *From:* Paul Noone <paul.no...@ceosyd.catholic.edu.au> ****
>
> *Sent:* Thursday, November 03, 2011 8:52 AM****
>
> *To:* mailto:ozmoss@ozmoss.com <ozmoss@ozmoss.com> ****
>
> *Subject:* Return only spfields that are filterable****
>
>  ****
>
> Can anyone provide an example of how I can use the SPField.Filterable
> property to return all fields where this is true?****
>
> I want to use this to dynamically populate a DropDownList control.****
>
>  ****
> ------------------------------
>
> _______________________________________________
> ozmoss mailing list
> ozmoss@ozmoss.com
> http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss****
> ------------------------------
>
> _______________________________________________
> ozmoss mailing list
> ozmoss@ozmoss.com
> http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss****
>
> _______________________________________________
> ozmoss mailing list
> ozmoss@ozmoss.com
> http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss
>
>

<<image001.png>>

_______________________________________________
ozmoss mailing list
ozmoss@ozmoss.com
http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss

Reply via email to