This is a migrated thread and some comments may be shown as answers.

[Solved] How to return to MVC grid from form ?

2 Answers 119 Views
Grid
This is a migrated thread and some comments may be shown as answers.
This question is locked. New answers and comments are not allowed.
IQworks
Top achievements
Rank 1
IQworks asked on 07 Feb 2010, 04:22 PM
 I have an index.aspx page that uses tabstrip ....

<%@ Page Language="C#" MasterPageFile="~/Views/Shared/Work.Master" 
 Inherits="System.Web.Mvc.ViewPage"   %> 
 
<asp:Content ID="indexTitle" ContentPlaceHolderID="TitleContent" runat="server">  
    Home Page  
</asp:Content> 
 
<asp:Content ID="indexContent" ContentPlaceHolderID="MainContent" runat="server">  
   <h2>GridAndTabStrip</h2> 
    
   <% Html.Telerik().TabStrip()  
            .Name("AdminTab")  
            .Items(tabstrip => 
            {  
                tabstrip.Add()  
                    .Text("Goals")  
                    .LoadContentFrom("LoadOnDemandDocument", "Work");  
                  
                tabstrip.Add()  
                    .Text("Issues")  
                    .LoadContentFrom("LoadOnDemandDocument", "Work");  
                      
                tabstrip.Add()  
                    .Text("CompanyWork")  
                    .LoadContentFrom("CompanyGrid", "Work");  
 
                tabstrip.Add()  
                   .Text("CompanyNix")  
                   .LoadContentFrom("CompanyNix", "Company");  
   
                tabstrip.Add()  
                 .Text("Company")  
                 .LoadContentFrom("CompanyGrid", "Company");  
 
                tabstrip.Add()  
                .Text("CompanyEntry")  
                .LoadContentFrom("CompanyCreate", "Company");  
 
                tabstrip.Add()  
              .Text("CompanyTabs")  
              .LoadContentFrom("CompanyTabs", "Company");  
            })  
            .Render();  
        %> 
</asp:Content> 
 
It launches the ".Text("Company") Companygrid .... 
 
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<BCAnalytics.Models.CompanyVM>>" %> 
     
        <%= Html.Telerik().Grid(Model)  
              .Name("CompanyGrid")  
              .Columns(columns => 
                {  
                    columns.Add(o => o.cMemberNo).Width(20);  
                    columns.Add(o => o.cCompanyNo).Width(20);  
                    columns.Add(o => o.cCompanyName).Width(50);  
                    columns.Add(o => o.cEmail).Width(50);  
                    columns.Add(o => o.cGroupCode).Width(50);  
                    columns.Add(o => o.cDateCreated).Format("{0:MM/dd/yyyy}").Width(50);  
                    columns.Add(o => o.cCompanyNo).Format(Html.ActionLink("Edit", "CompanyEdit", new { Id = "{0}" }, null).ToString()).Encoded(false).Title("");  
                    columns.Add(o => o.cCompanyNo).Format(Html.ActionLink("Delete", "CompanyDelete", new { Id = "{0}" }, null).ToString()).Encoded(false).Title("");   
                })  
               .Ajax(settings => settings.Action("_AjaxBindingCompany", "Company"))  
               .Pageable()  
               .Sortable()  
               .Scrollable()  
               .Filterable() %> 
   <p><%= Html.ActionLink("Create New", "CompanyCreate") %></p> 
 the grid launches this form on Edit ....
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<BCAnalytics.Models.Company>" %> 
   
    <%= Html.ValidationSummary("This Company not updated, Please correct the errors and try again.") %> 
   
    <% using (Html.BeginForm()) {%> 
 
        <fieldset> 
            <legend>Fields</legend> 
               
                <%= Html.Hidden("coMemberNo")%> 
                 <%= Html.Hidden("coCompanyNo")%> 
                  <%= Html.Hidden("coDateCreated")%> 
                 <%= Html.Hidden("coDateUpdated")%>      
            <p> 
                <label for="coCompanyName">coCompanyName:</label> 
                <%= Html.TextBox("coCompanyName") %> 
                <%= Html.ValidationMessage("coCompanyName", "*") %> 
            </p> 
            <p> 
                <label for="coAddress1">coAddress1:</label> 
                <%= Html.TextBox("coAddress1") %> 
                <%= Html.ValidationMessage("coAddress1", "*") %> 
            </p> 
            <p> 
                <label for="coAddress2">coAddress2:</label> 
                <%= Html.TextBox("coAddress2") %> 
                <%= Html.ValidationMessage("coAddress2", "*") %> 
            </p> 
            <p> 
                <label for="coCity">coCity:</label> 
                <%= Html.TextBox("coCity") %> 
                <%= Html.ValidationMessage("coCity", "*") %> 
            </p> 
            <p> 
                <label for="coProvince">coProvince:</label> 
                <%= Html.TextBox("coProvince") %> 
                <%= Html.ValidationMessage("coProvince", "*") %> 
            </p> 
            <p> 
                <label for="coPostalCode">coPostalCode:</label> 
                <%= Html.TextBox("coPostalCode") %> 
                <%= Html.ValidationMessage("coPostalCode", "*") %> 
            </p> 
            <p> 
                <label for="coPhone">coPhone:</label> 
                <%= Html.TextBox("coPhone") %> 
                <%= Html.ValidationMessage("coPhone", "*") %> 
            </p> 
            <p> 
                <label for="coContact">coContact:</label> 
                <%= Html.TextBox("coContact") %> 
                <%= Html.ValidationMessage("coContact", "*") %> 
            </p> 
            <p> 
                <label for="coEmail">coEmail:</label> 
                <%= Html.TextBox("coEmail") %> 
                <%= Html.ValidationMessage("coEmail", "*") %> 
            </p> 
            <p> 
                <label for="coGroupCode">coGroupCode:</label> 
                <%= Html.TextBox("coGroupCode") %> 
                <%= Html.ValidationMessage("coGroupCode", "*") %> 
            </p> 
            <p> 
                <label for="coSubscriberNo">coSubscriberNo:</label> 
                <%= Html.TextBox("coSubscriberNo") %> 
                <%= Html.ValidationMessage("coSubscriberNo", "*") %> 
            </p> 
            <p> 
                <input type="submit" value="Update" /> 
            </p> 
        </fieldset> 
 
    <% } %> 
 
    <div> 
        <%=Html.ActionLink("Back to List", "Index","Work") %> 
    </div> 
   
 
 
after I submit the form , I am not quite sure how to go back to the index.aspx, call the 'CompanyGrid' tabstrip so the grid is automatically redisplayed ?
  How do you call a tabstip item ?

  thanks for your time

2 Answers, 1 is accepted

Sort by
0
James Davies
Top achievements
Rank 1
answered on 07 Feb 2010, 06:27 PM
Hi IQWorks,

Your controller Index method (or whatever calls Index.aspx) can take an optional tab index to define the tab to be initially selected, e.g.

    public ActionResult Index(int? tabIndex)

and in Index.aspx you could have something like:

    int selected = tabIndex ?? 0;

with this added to the tabstrip definition:

    .SelectedIndex(selected);

Then your Edit form can call the Index method with the required tab index hard-wired.

    <%= Html.ActionLink("Back to List",

"Index", "Work", new { tabIndex = 4 }) %>

 


Something like that, anyway...

    Jim

0
IQworks
Top achievements
Rank 1
answered on 09 Feb 2010, 03:58 AM
    Thanks Jim, 
            This helped me figure it out.
             The page that has my tabstrips look like this ...                 
 
                tabstrip.Add()  
              .Text("CompanyTabs")  
              .LoadContentFrom("CompanyTabs", "Company");  
            })  
            .SelectedIndex(Convert.ToInt32(TempData["workIndex"]))   
            .Render(); 

       My actionlink in my companytabs looks like this ...
 <p><%= Html.ActionLink("Create New", "Index", "Work", new { workindex = 6 },null)%></p>  

  the view controller looks like this ..
  public ActionResult Index(int? workindex)  
        {  
            TempData["workIndex"] = 0;  
            if(workindex != null)  
            TempData["workIndex"] = workindex;  
            ViewData["orientation"] = "Horizontal"; // "Vertical";  
            return View();  
        } 

 hopes this helps somebody
Tags
Grid
Asked by
IQworks
Top achievements
Rank 1
Answers by
James Davies
Top achievements
Rank 1
IQworks
Top achievements
Rank 1
Share this question
or