Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • J 447 posts 864 karma points
    Jun 14, 2013 @ 16:35
    J
    0

    Access control in code

    I have a class which builds a form. I would like to access a dropdown list and take relevant action depending on the selection

    [Field(FormPages.Registration, FormFieldsets.Details, Type = typeof(DropDownList), Caption=@"Select Country", Prevalues= new string[] {"USA", "Germany", "UK"}, Mandatory = true)]

    How could i access the above control in code to get the selectedvalue?

    Thanks

  • Comment author was deleted

    Jun 14, 2013 @ 16:47

    Hey look at the examples here you can just override the submit method and then access the properties and they should be filled with the chosen values on submit

    http://www.nibble.be/?p=205

  • J 447 posts 864 karma points
    Jun 17, 2013 @ 15:49
    J
    0

    Thanks but when i used that code as a guide it seems the control is comparing the GUID against the value im testing against and not the text value displayed i.e

    if (Country == "Germany") ......

    then its reading it as

    if (Country == 2cc3c8e-fd4g-491d-8374-755446c0c4dd)

    How could i compare against the text value?

  • Comment author was deleted

    Jun 17, 2013 @ 15:52

    You could fetch it from the prevalue storage or another way would be to update the dropdownlist view so it uses the text as value

  • J 447 posts 864 karma points
    Jun 17, 2013 @ 16:27
    J
    0

    How would i update the dropdown list so it uses a text value?

  • Comment author was deleted

    Jun 17, 2013 @ 16:28
  • J 447 posts 864 karma points
    Jun 17, 2013 @ 16:48
    J
    0

    Thanks for that but im using Contour 1.1.12 so dont think that link would apply?

    So i looked into getting the prevalue storage values and im not sure where to start from as ive seen multiple different code samples?

  • Comment author was deleted

    Jun 17, 2013 @ 16:54

    Are you sure you are on 1.1.12 since code first isn't in that (only from version 3 and up)

    Sure take a look at Umbraco.Forms.Data.Storage.PrevalueSourceStorage

  • J 447 posts 864 karma points
    Jun 17, 2013 @ 17:00
    J
    0

    Yes it definately 1.1.12. I found that code and used it as a guide.... could be the reason why im getting the odd behaviour? To get the prevalues im using this thread as a guide - should this be ok or would i find different issues down the line?

    http://our.umbraco.org/forum/umbraco-pro/contour/12438-Getting-prevalues-through-the-API

  • Comment author was deleted

    Jun 17, 2013 @ 17:00

    Yeah should still work

  • J 447 posts 864 karma points
    Jun 17, 2013 @ 17:29
    J
    0

    theres no GetAllPreValues method and GetPrevalueSource accepts a GUID but i am trying to pass in the Country i.e.

    [Field(FormPages.Registration, FormFieldsets.Details, Type = typeof(DropDownList), Caption=@"Select Country", Prevalues= new string[] {"USA", "Germany", "UK"}, Mandatory = true)]

    public string Country {get; set;} 

                Umbraco.Forms.Data.Storage.PrevalueSourceStorage preStor = new Umbraco.Forms.Data.Storage.PrevalueSourceStorage();

                List<Umbraco.Forms.Data.Storage.PrevalueSourceStorage> p = preStor.GetPrevalueSource(****);

  • J 447 posts 864 karma points
    Jun 18, 2013 @ 15:47
    J
    0

    Just realsied that the namespace should be Umbraco.Forms.Data.Storage.PreValueStorage.

    This has me along the right track but if my code is 

    [Field(FormPages.Registration, FormFieldsets.Details, Type = typeof(DropDownList), DefaultValue = "{member.Country}", Caption=@"Select Country", Prevalues= new string[] {"USA", "Germany", "UK"}, Mandatory = true)]

    public string Country {get; set;} 

    What is a field? In other word what am i passing into GetAllPreValues();

  • J 447 posts 864 karma points
    Jun 19, 2013 @ 11:54
    J
    0

    Using this code it still doesnt work - Any ideas? Anyone? I generated a GUID and passed it in manually so not sure if thats causing an issue?

                using (Umbraco.Forms.Data.Storage.PreValueStorage pvs = new Umbraco.Forms.Data.Storage.PreValueStorage())
                {
                    var val = pvs.GetPreValue(new Guid("C81C77EE-0ACC-4561-8AFB-6E402CD4694E")).Value;
    
    
                    if (val == "USA")
                    {
  • Comment author was deleted

    Jun 19, 2013 @ 12:00

    Hey you don't need to generate a new guid, simply pass it in the guid you get 

     2cc3c8e-fd4g-491d-8374-755446c0c4dd in your example

  • Comment author was deleted

    Jun 19, 2013 @ 12:01

    if (Country == "Germany") ......

    then its reading it as

    if (Country == 2cc3c8e-fd4g-491d-8374-755446c0c4dd)

    So pass in Country :) and it should get you the value

  • J 447 posts 864 karma points
    Jun 19, 2013 @ 12:26
    J
    0

    Ok still getting some unusual results :(.

    First heres the code incase i am doing something wrong 

            [Field(FormPages.Registration, FormFieldsets.Details, Type = typeof(DropDownList), DefaultValue = "{member.Country}", Caption = @"Select Country", Prevalues = new string[] { "USA""Germany""UK" }, Mandatory = true)]
    
            public string Country { getset; } 
    using (Umbraco.Forms.Data.Storage.PreValueStorage pvs = new Umbraco.Forms.Data.Storage.PreValueStorage())             {                 var val = pvs.GetPreValue(new Guid("2cc3c8e-fd4g-491d-8374-755446c0c4dd")).Value;                 if (Country == "USA")                 {

    That code is generated on my local machine. I then copy the dll to the app_code directory for the site.

    The GUIDS are different to the one above?

  • Comment author was deleted

    Jun 19, 2013 @ 12:32

    Could you try

    var val = pvs.GetPreValue(newGuid(Country)).Value
    if val == "USA
  • J 447 posts 864 karma points
    Jun 19, 2013 @ 12:43
    J
    0

    That seems to have worked - whoo hoo!!!! 

    Ill go through a full test and if any probs will reply back. Thanks again for your help.

  • Comment author was deleted

    Jun 19, 2013 @ 12:44

    Sweet glad I could help :)

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies