Implement Dynamic Navigation System?
May 29, 2010
im am trying to write a forum using asp.net at the moment i have threads -> topics -> comments i realised that at the moment if users try to go back (from comments to topics and to threads), they can only use the back button in the browsers i am now trying to creat a menu like the one used in this forum (at the top "home >asp.net forums > general asp.net > getting started") as at anytime you can go back to see other topics at the moment i have tried to implement the following :
[Code]....
i thought that if i store get the topic_id from the address bar once, and store it in the session - then when i navigate to ..?comment_id - the topic_id would remain in the seesion i thought that in theory it kind of works, but now that i am trying to explain it here, i know that the session would then = to null. So i wondering is their any way to implement this navigation system
View 3 Replies
Similar Messages:
Jul 2, 2010
I am using ASP.NET MVC 2 & .Net 3.5 with Visual Studio 2008. Ok, what I am referring to by 'Wizard type page navigation', is a site where you have a list of stages in a given process or workflow. There is some kind of visual denotation to indicate which part of the stage you are at. I have already implemented this part (albeit, it smells like a hack) via the following:
css class current denotes active page.
css class notcurrent denotes in-active page (i.e. page you are not on)
I declared the following method in a class called NavigationTracker.
public static String getCss(String val, String currView) {
String result = String.Empty;
String trimmedViewName = currView.Substring(currView.LastIndexOf("/") + 1).Replace(".aspx", "");
if (val.ToLower().Equals(trimmedViewName.ToLower()))
result = "current"; else result = "notcurrent"; return result; }
I have my stages in a control like this:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="TheProject.Models" %>
<link href="../../Content/custom.css" rel="stylesheet" type="text/css" />
<% String currentView = ((WebFormView)ViewContext.View).ViewPath; %>
<table width="100%"> <tr>
<td class="<%= NavigationTracker.getCss("LogIn",currentView)%>" style="width:18%;">Log In</td>
<td class="<%= NavigationTracker.getCss("YearSelect",currentView)%>" style="width:18%;">Year Section</td>
<td class="<%= NavigationTracker.getCss("GoalEntry",currentView)%>" style="width:18%;">Goals</td>
<td class="<%= NavigationTracker.getCss("AssessmentEntry",currentView)%>" style="width:18%;">Assessment</td>
<td class="<%= NavigationTracker.getCss("SummaryEntry",currentView)%>" style="width:18%;"> Summary</td> </tr> </table>
To supplement this process, I'd like to create a user control that just has Previous & Next buttons to manage going through this process. So far, one snag I've hit is that this control cannot be put in the master page, but would have to be included in each view, before the form ends. I don't mind that so much. Clicking either the Previous or Next button submit the containing form to the appropriate action; however, I'm unsure on how to do the following:
1) Detect whether the Previous or Next button was clicked
2) Show/Hide logic of Previous & Next buttons at the beginning & end of the process respectively.
Another oddity I'm noticing with my application in general is that, after going through several pages of the process, if I click the back button, some values from my model populate on the page and others do not. For example, the text entered for a text area shows, but the value that had been chosen for a radio button is not selected, yet when inspecting the model directly, the appropriate object does have a value to be bound to the radio button. I may just need to put that last part in a new question. My main question here is with the navigation control. Any pointers or tips on handling that logic & detecting whether Next or Previous was clicked would be most helpful.
I had a thought to put a hidden field in the control that displays the Previous & Next buttons. Depending on what button was clicked, I would use javascript to update the hidden fields value. The problem now seems to be that the hidden field is never created nor submitted with the form. I've amended the controller post arguments to accept the additional field, but it never gets submitted, nor is it in the FormCollection. Here is the code for the hidden field. Note that its being generated in a user control that is called inside of the form on the parenting view (hope that makes sense).
<% Html.Hidden("navDirection", navDirection); %>
In short, the solution was to have a Navigation class like the one suggested with logic to determine the next or previous page based on the current view & a string list of all views. A partial view / user control was created to display the Previous / Next buttons. The user control had 2 hidden fields: 1) One with the value of the current view 2) a field indicating navigation direction (previous or next). Javascript was used to update the hidden navigation field value depending on what button was clicked. Logic in the user control determined whether or not to display the 'Previous' or 'Next' buttons depending on the first and last views in the wizard when compared to the current view. All said, I'm pretty happy with the results. I'll probably find some code smell issues when I return to this, but, for now, it works.
Here is the code for the control I built to display the 'Next' & 'Previous' navigation buttons:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="Project.Models" %>
<link href="../../Content/custom.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" > function setVal(val) {
var nav = document.getElementById("NavigationDirection"); nav.value = val;
} </script> <% String currentView = ((WebFormView)ViewContext.View).ViewPath;
String navDirection = "empty"; currentView = NavigationTracker.getShortViewName(currentView); %>
<input type="hidden" value="<%= currentView %>" name="CurrentView" id="CurrentView" />
<input type="hidden" value="<%= navDirection %>" name="NavigationDirection" id="NavigationDirection" /> <% if( currentView != NavigationTracker.FirstPage) { %>
<div style="float:left;"> <input type="submit" value="Previous" onclick="setVal('previous')" />
<!-- On click set navDirection = "previous" --> </div> <% } %>
<% if (currentView != NavigationTracker.LastPage) { %>
<div style="float:right;"> <input type="submit" value="Next" onclick="setVal('next')" /> <!-- On click set navDirection = "next" --> </div> <% } %>
From there, you render the control just before the closing tag of a form on views you want it like so:
<% Html.RenderPartial("BottomNavControl"); %> <% } %>
Now I can't really post all of the NavigationTracker code, but the meat of how it works can be deduced from the selected answer and the following snippet that returns the name of the view, based on the current view and the direction (previous or next).
public String NextView { get {
if (String.IsNullOrEmpty(this.NavigationDirection)) return string.Empty;
int index = this.MyViews.IndexOf(this.CurrentView); String result = string.Empty;
if (this.NavigationDirection.Equals("next") && (index + 1 < MyViews.Count ) {
result = this.MyViews[index + 1]; }
else if (this.NavigationDirection.Equals("previous") && (index > 0)) {
result = this.MyViews[index - 1]; } return result; } }
Now, doing all of this has a few side effects that could easily be considered code smell. Firstly, I have to amend all of my controller methods that are marked [HTTPPOST] to accept a NavigationTracker object as a parameter. This object contains helper methods and the CurrentView & NavigationDirection properties. Once this is done, I can get the next view the same way in all of my actions:
return RedirectToAction(nav.NextView);
where nav is of type NavigationTracker.
Another note is that the FirstPage & LastPage properties of NavigationTracker are static so I'm actually using NavigationTracker.FirstPage in my global.asax.cs file for my routing. This means I can go to my NavigationTracker class and change the flow in one place for the entire application.
View 3 Replies
Dec 4, 2010
I've been tasked with managing the re-write of a very large enterprise application's UI. The existing UI was built upon an infrastructure which leverages the EntLib 3's PageFlow application block and the Web Client Software Factory. It performs horribly - part of the reason we need this upgrade so badly.
The problem is that these pageflows are very complex, using extensive conditional page transitions. When editing a data form, selection of a single value can determine not only what page you will reach when you click "Next", but whether a sub-pageflow is entered upon navigation instead, or a new pageflow is opened in parallel, etc. We deploy our UI in such a way where we control our API, but we allow certain licenses to purchase our UI code and extend/modify it as they deem fit. One of our selling points is that we allow the customer to "configure" or redefine pageflows using the VS designer.
In transitioning to MVC2 (or 3), we'd like to continue to offer configurable, conditional navigation throughout our various data entry page sequences. However, although I have developed the beginnings of our app in MVC2, I'm not sure the best way of implementing this data-entry pageflow "conversion". Sure, I've had my resources produce some solid designs - but all of them seem to require implementation of a complex controllerfactory. But one of the main attractions of MVC2 for me was its lightweight codebase and resultant performance gains - and I'm afraid that bypassing portions of MVC2 functionality by writing custom factories and the like will drastically reduce the performance of the app, making our UI refresh virtually worthless.
My initial thought was to write a custom filter that would implement the OnActionExecuted method. Every controller's primary POST methods would be marked with this attribute. Upon execution it would evaluate what view the user was on and look up the navigation event for that view in configuration. This config would have a default "next page"/"previous page" mapping, and can also allow for defining a type which would use conditional logic to determine the next page based on the posted model data. The actionfilter would use this type to find what route to navigate to next. I'd like to pick you experts' brains on this - does this seem like a solid design? Is it using best practices? And will it indeed perform better than a controller factory, or am I completely off-base here?
View 3 Replies
Apr 10, 2010
I Made label to had value from database and linked it . but the problem was it had only one value and i want it keep value when navigation thought site as.
x>y>z>....
this is my code
<
if (Request.QueryString["Category_Id"] != null)
{
Banar.ImageUrl = "Handlers/Banner.ashx?Category_Id=" + Request.QueryString["Category_Id"] + "";
using
(SqlConnection conn = Connection.GetConnection())
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Navcategory";
cmd.Parameters.Add(Parameter.NewInt("@Category_Id", Request.QueryString["Category_Id"]));
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
LblNavigaton.Visible = true;
LblNavigaton.Text = dr[i].ToString();
NavHref.HRef = "ListView.aspx?Category_Id=" + Request.QueryString["Category_Id"] + "";
}
}
}
else if (Request.QueryString["ProductCategory_Id"] != null)
{
Banar.ImageUrl = "Handlers/ProCatBanner.ashx?ProductCategory_Id=" + Request.QueryString["ProductCategory_Id"] + "";
using
(SqlConnection conn = Connection.GetConnection())
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "NavProductcategory";
cmd.Parameters.Add(Parameter.NewInt("@ProductCategory_Id", Request.QueryString["ProductCategory_Id"]));
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
LblNavigaton.Visible = true;
LblNavigaton.Text = dr["Name"].ToString();
NavHref.HRef = "ListView.aspx?ProductCategory_Id=" + Request.QueryString["ProductCategory_Id"] + "";
}
else
{
LblNavigaton.Visible = true;
LblNavigaton.Text = Page.Title;
}
}
View 2 Replies
Jun 29, 2010
How I can Make Navigation bar in my site as A>E>D>S>H. I tried more to find an example also I searched more but I couldn't find particular example searched
View 2 Replies
Feb 1, 2011
Im a newbie working on my first ASP.NET webpage using Visual Studio 2010. Im looking for a recomandation on a flexible webpage navigation/menu system. I need a dynamic system that uses SQL as backend (so that webmaster can update menus/navigation using a simple CMS) Any good systems out there you would recomend?
View 3 Replies
Mar 28, 2011
I have bound data to text values of many textboxes using dataset as follows,
[Code]....
Now I want to provide a navigation system such as first, previous, next, last buttons as there are many rows returned from the query. I tried but could not succeed.
View 1 Replies
Feb 22, 2010
Here is my web.sitemap code:
[Code]....
I wanna to show bread crumbs navigation like:
Home > Column1 > Content
the problem is: "~/Index.aspx" and "~/Column.aspx?ColumnId=1" are actual URLs and navigation bar: "Home > Column1" really works,
but "~/Content.aspx?ColumnId=1" is only the beginning part of actual dynamic URL, for example: it may be
~/Content.aspx?ColumnId=1&NewsId=12598 or ~/Content.aspx?ColumnId=1&NewsId=37215
all the previous Urls are articles of Column1 with same "~/Content.aspx?ColumnId=1" but are followed with different "&NewsId=number".
So, how can I realize this kind of navigation bar?
Home > Column1 > Content
View 3 Replies
Jan 3, 2011
How will we do Dynamic Bread Crumb Navigation
View 6 Replies
May 16, 2010
I'm trying to create an ASP.NET MVC master page so the site navigation on it will look like this:
Main Menu:Home | About | News
Sub Menu: Home_Page1 | Home_Page2
The Sub Menu section should always show sub-menu for the currently selected Main Menu page (on the example above 'Home' page is selected) unless a user hovers the mouse on another Main Menu item (then it shows that item's sub-menu instead).
View 2 Replies
Jun 16, 2010
I am building a project in asp.net 4.0. My navigation will be database driven where i return a datatable from the db containing all the pages of my site, some will be top level while others will be children and sometimes children of children n-times. Im thinking of going down the nested repeater route and databinding from code behind, dynamically generating repeaters for children, but have read that this is not a best practice and should consider the listview control. Im wanting to build a list of links using an unordered list.
View 1 Replies
Oct 26, 2010
Error Populating Dynamic Navigation Menu
[Code]....
View 10 Replies
Apr 20, 2010
I've added the Dynamic.cs file to my project and have set it's Build Action = Compile in order to get the System.Linq.Dynamic namespace.
However, when I try to use any of the new code I am getting an ambiguous call error; see below.
[Code]....
View 2 Replies
Feb 9, 2011
In my asp.net MVC 3 web application, I want to implement basic authentication system in my webapp. I have been searching and reading for past two days but still not able to get a hold of it.
I was following [URL]
I created a CustomMembershipProvider class in my models
[Code]....
In my webconfig file, I do have [Code]....
Now, I created a AccountController, in that I added following code
[Code]....
After that I added view fo Logon
[Code]....
Now, the first problem which I am facing is, when I Debug the webapplication, I get HTTP404 error. Url generated
[URL]
But when I try to open
[URL]
View 7 Replies
Oct 21, 2010
I have either an ASP.NET displaying my results, or a Silverlight client. And I'd like to show the current status of my server, or embedded device. (pretend the device reads temperature and humidity stats)
How should I send the status information from my device to the front end? Should I poll the device and save the results to SQL, Azure Table, or the like? (Azure is a technology that fits with this project for other reasons. That's why I mention it) Or should I create a WCF service that polls the device directly and returns the current status.
View 2 Replies
Oct 6, 2013
How to implement chat system in our websites, like facebook, gmail. etc ...?
View 1 Replies
Feb 9, 2010
I want to implement Knowledge Management System in SharePoint.
View 1 Replies
Jan 27, 2011
I've never actually implemented a registration/login system before, so I'm trying my hand at making my own in C#/ASP.NET (not using ASP.NET's built-in membership provider). What I'm a little unclear on is how to utilize Session/cookies to keep a user logged in during and between sessions.
protected void Login_User(object sender, EventArgs e)
{
string username = usernameField.Text;
string password = passwordField.Text;
User user = UserRepository.FindUser(username);
if (user != null)
{
if (user.Password.Equals(Hash(password)))
{
// How do I properly login the user and keep track of his session?
}
else
Response.Write("Wrong password!");
}
else
Response.Write("User does not exist!");
}
View 3 Replies
Sep 19, 2013
How to show star voting system using ASP.Net, C#.
View 1 Replies
Mar 22, 2010
What is the Best practice of dynamic changing password for this scenario?
The scenario is:
There are three web apps using ASP.NET.
App1 checks the passwords of app2/app3 to authenticate the identity, and if app2/app3 is authenticated then app1 is allowed to receive information from App2 and App3.
And app1 has to change the passwords of app2/app3 every two hour for security reason.
Is it possible that there is a way to implement this scenario without app1 saving the passwords of app2/app3 for security reason?
Or is there any best practice for dynamic changing password scenario?
View 1 Replies
Feb 15, 2010
Is there a way to use AJAX Accordion with dynamics texts from SqlDataSource control? If so, will someone point me to a step by step instruction?
View 7 Replies
Jul 22, 2010
what is best tutorial to implement dynamic title, meta keywords and description in a mvc2 application.
View 1 Replies
Oct 21, 2010
I am having a lot of the same issue as this poster did with errors on initializing type.
I am trying to learn linq and am about ready to give up - don't get how this is easier...
I'm trying to do a simple update to product names in the product table based on the manufacturer ID
In order to do this I am looping through each record. I was initally successful with changing all names in the column but when I try to query the data, I continually run into multiple problems.
The following poster has had the same issue I have but his solution isn't working for me.
[URL]
I keep getting the same error on the opening bracket on the select statement in the SelectByManufacturerID function...
Error 1 Cannot initialize type 'DataBaseDataManagement.ProductName' with a collection initializer because it does not implement 'System.Collections.IEnumerable'
Button that does the actual updating...
[Code]....
The function that the button calls to get the query... ERROR
[Code]....
The class located in Query.cs...
[Code]....
View 3 Replies
Jul 9, 2010
what I wanted to implement is something like this: lick meThis demo is PHP based, so I wanted to ask whether this is also possible to implement in ASP.Talking about performance, would it be better to use the jQuery framework than the Ajax Control Toolkit?
View 2 Replies
Jan 15, 2011
how to implement a filter feature like this? What Ajax or JQuery controls can be used for this (if any)?
Here is an example of how the UI might look like:
See the Exchange Management Console image:
[URL]
Here is the spec:
The ASP.NET page has a "Filter" component and a "Apply Filter" button. The "Filter" component consists of 4 UI controls as below:
1. A dropdown list with prepopulated values like "Name", "Department", "Building", "Email Address".
2. A dropdown list with four operators - "Equal", "Not Equal", "Like", and "Not Like"
3. This is a dynamic control. It could be a textbox or a dropdown list. If the user chooses "Name" from the first UI control, the third UI control will become a Textbox. If the user chooses "Department" from the first UI control, the third UI control will become a dropdown list with all departments within this company pre-populated.
4. A button with AND expression. If the user clicks this button, one more Filter component will be created.
One possible user case is like this:
ASP.NET: when the page is loaded, it displays one Filter component (3 UI controls and a AND button), a "Apply Filter" button, and an empty "Filter Result" data grid.
View 2 Replies