Dec 23, 2010, 2:30 PM
[CLOSED] Universal PartialViewResult Problem
Hi vladimir
To simplify my project, I made my own version of a partialviewresult. The problem is, like in a thread before, to activate ID's that are aleady rendered.
The Interesting Part is:
Thanks
To simplify my project, I made my own version of a partialviewresult. The problem is, like in a thread before, to activate ID's that are aleady rendered.
The Interesting Part is:
myControllerContext.HttpContext.Response.Write("if(!Ext.get('" + myXControl.ClientID + "')){" + myXControl.ToScript(this.RenderMode, this.ContainerId ?? "={Ext.getBody()}", this.Index, true) + "} else { Ext.get('" + myXControl.ClientID + "').activate;}");
How can I check if a ID is there - and if yes - activate/show/bring to front - regardless if it's a tab or something else...Thanks
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Compilation;
using System.Web.Mvc;
using System.Web.UI;
using Ext.Net;
using Ext.Net.Utilities;
namespace BPM.LIB.MVC
{
public class PartialViewResult : ViewResultBase
{
public string ContainerId { get; set; }
public int Index { get; set; }
public IDMode IDMode { get; set; }
private RenderMode RenderMode { get; set; }
public PartialViewResult()
{
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="myModel"></param>
public PartialViewResult(object myModel)
{
this.ViewData.Model = myModel;
}
/// <summary>
/// Constructor
/// </summary>
/// <param name="containerId">Destination Element for RenderMode.AddTo</param>
public PartialViewResult(string containerId)
{
this.ContainerId = containerId;
}
public PartialViewResult(object myModel, string myContainerId)
{
this.ContainerId = myContainerId;
this.ViewData.Model = myModel;
}
public override void ExecuteResult(ControllerContext myControllerContext)
{
try
{
ViewName = myControllerContext.RouteData.GetRequiredString("action");
View = this.ViewEngineCollection.FindPartialView(myControllerContext, this.ViewName).View;
PartialViewPage myPartialViewPage = new PartialViewPage
{
ViewData = new ViewDataDictionary(ViewData),
ViewContext = new ViewContext(myControllerContext, View, ViewData, TempData, myControllerContext.HttpContext.Response.Output)
};
ResourceManager myResourceManager = new ResourceManager()
{
RenderScripts = ResourceLocationType.None,
RenderStyles = ResourceLocationType.None,
IDMode = this.IDMode
};
myPartialViewPage.Controls.Add(myResourceManager);
ViewUserControl myViewUserControl = (ViewUserControl)myPartialViewPage.LoadControl(((WebFormView)View).ViewPath);
myViewUserControl.ViewData = ViewData;
myPartialViewPage.Controls.Add(myViewUserControl);
XControl myXControl = Ext.Net.Utilities.ControlUtils.FindControl<XControl>(myViewUserControl);
myPartialViewPage.InitHelpers();
if (View is IDisposable)
((IDisposable)View).Dispose();
this.RenderMode = string.IsNullOrEmpty(this.ContainerId) ? RenderMode.RenderTo : this.Index > 0 ? RenderMode.InsertTo : RenderMode.AddTo;
myControllerContext.HttpContext.Response.Write("if(!Ext.get('" + myXControl.ClientID + "')){" + myXControl.ToScript(this.RenderMode, this.ContainerId ?? "={Ext.getBody()}", this.Index, true) + "} else { Ext.get('" + myXControl.ClientID + "').activate;}");
}
catch(Exception myException)
{
throw(myException);
}
}
protected override ViewEngineResult FindView(ControllerContext context)
{
throw new NotImplementedException();
}
}
}
Last edited by Daniil; Dec 31, 2010 at 6:26 PM.
Reason: Please use [CODE] tags, [CLOSED]