Pass variable on click of link to function within template
Hi all,
I'm quite new to umbraco so I need to know how the fundamentals with functions work. I would like to know if I can pass a variable to a function when an unordered list link is clicked, assign it to an existing variable and then return that updated variable back to the body of the page.
So far I can assign a variable for each list item and I have tried to pass that value to a function with the hyperlink reference tag, a href:
[code] foreach (dynamic secondPage in page.Children){ var itemtest = secondPage.Name; <li><a href="@afunction(itemtest)">@secondPage.Name</a></li>[/code]
In the function I am simply trying to assign the itemtest variable to an existing variable called 'anothertest' however when trying to display this in the body there is no result.
[code] @functions { public string anothertest {get; set;} public string afunction(string b) { @anothertest = @b; return anothertest; } } [/code]
If someone could guide me on the basics of this that would be much appreciated. As I only want to reassign a variable on click of a link, I don't think a partial view is required.
What is the purpose of your function? What should it do for you? Can you ellaborate a bit more about what it is you're trying to achieve? The above scenario seem a bit abstract :)
I'm filtering content based on chosen sidebar menu links. When a menu link is clicked I need to pass the link name value to a function in order to assign it to the variable used to compare the content's property, allowing me to select which content to show on the page if there is a match.
I had this party working with javascript when the page initially loaded but had trouble passing js values back to razor in order to update the content set so now I need to know how this is done using an umbraco function.
Would it be possible for you to render all the content using Razor and then show/hide when sorting using JavaScript? Seems like a cumbersome approach you're doing currently? :)
No, not unless you're using ajax somehow. But I'm thinking that if you render all of the content (depending on how much of course) you should be able to provide the content with different classes based on the content type and then in JavaScript you will be able to sort it using a plugin like isotope for instance? http://isotope.metafizzy.co/
It would be useful to know if I can use a razor function on click of a list item or at least get the list/div ID in umbraco ?
I can actually sort the content on page load just by using an if statement when loading the content in the foreach. the problem is updating the value used in the if statement as it will not update when the list link is clicked. So all my function would need to do is reassign to variable.
I have assigned the variable before each list is created however it needs to be assigned on click or I need to get the list id:
Pass variable on click of link to function within template
Hi all,
I'm quite new to umbraco so I need to know how the fundamentals with functions work. I would like to know if I can pass a variable to a function when an unordered list link is clicked, assign it to an existing variable and then return that updated variable back to the body of the page.
So far I can assign a variable for each list item and I have tried to pass that value to a function with the hyperlink reference tag, a href:
[code]
foreach (dynamic secondPage in page.Children){
var itemtest = secondPage.Name;
<li><a href="@afunction(itemtest)">@secondPage.Name</a></li>[/code]
In the function I am simply trying to assign the itemtest variable to an existing variable called 'anothertest' however when trying to display this in the body there is no result.
[code]
@functions {
public string anothertest {get; set;}
public string afunction(string b) {
@anothertest = @b;
return anothertest;
}
}
[/code]
If someone could guide me on the basics of this that would be much appreciated. As I only want to reassign a variable on click of a link, I don't think a partial view is required.
Steph
Hi Steph
What is the purpose of your function? What should it do for you? Can you ellaborate a bit more about what it is you're trying to achieve? The above scenario seem a bit abstract :)
/Jan
Hi Jan,
I'm filtering content based on chosen sidebar menu links. When a menu link is clicked I need to pass the link name value to a function in order to assign it to the variable used to compare the content's property, allowing me to select which content to show on the page if there is a match.
I had this party working with javascript when the page initially loaded but had trouble passing js values back to razor in order to update the content set so now I need to know how this is done using an umbraco function.
Steph
Hi Steph
Would it be possible for you to render all the content using Razor and then show/hide when sorting using JavaScript? Seems like a cumbersome approach you're doing currently? :)
/Jan
Hi Jan,
Is it possible to include an umbraco doc type property in JS in order to hide the matched content?
Steph
Hi Stephanie
No, not unless you're using ajax somehow. But I'm thinking that if you render all of the content (depending on how much of course) you should be able to provide the content with different classes based on the content type and then in JavaScript you will be able to sort it using a plugin like isotope for instance? http://isotope.metafizzy.co/
/Jan
Hi Jan,
It would be useful to know if I can use a razor function on click of a list item or at least get the list/div ID in umbraco ?
I can actually sort the content on page load just by using an if statement when loading the content in the foreach. the problem is updating the value used in the if statement as it will not update when the list link is clicked. So all my function would need to do is reassign to variable.
I have assigned the variable before each list is created however it needs to be assigned on click or I need to get the list id:
[code]
foreach (dynamic secondPage in page.Children)
{
var itemtest2 = @secondPage.Name;
itemtest = itemtest2;
<li style="color:black">
<a href="#" id="@itemtest" > @secondPage.Name </a>
</li>
}
[/code]
Thanks for the plugin reference though, I will use that if I don't get anywhere!
is working on a reply...