Fix redirect when add\change IP address in the edit server page and in IP list page with paging

This commit is contained in:
Alexander Trofimov 2015-01-23 13:31:53 +07:00
parent c150c997a6
commit 8f22fea5f4
5 changed files with 38 additions and 7 deletions

View file

@ -46,7 +46,7 @@ namespace WebsitePanel.Portal
/// <summary>
/// Summary description for Utils.
/// </summary
public class Utils
public static class Utils
{
public const string ModuleName = "WebsitePanel";
@ -335,7 +335,7 @@ namespace WebsitePanel.Portal
/// <param name="paramName">Name of the parameter to add.</param>
/// <param name="paramValue">Value for the parameter to add.</param>
/// <returns>Url with added parameter.</returns>
public static Uri AddParameterToUrl(Uri url, string paramName, string paramValue)
public static Uri AddParameter(this Uri url, string paramName, string paramValue)
{
var uriBuilder = new UriBuilder(url);
var query = HttpUtility.ParseQueryString(uriBuilder.Query);

View file

@ -51,7 +51,7 @@
</asp:TemplateField>
<asp:TemplateField SortExpression="ExternalIP" HeaderText="gvIPAddressesExternalIP">
<ItemTemplate>
<asp:hyperlink NavigateUrl='<%# EditUrl("AddressID", DataBinder.Eval(Container.DataItem, "AddressID").ToString(), "edit_ip") %>' runat="server" ID="Hyperlink2">
<asp:hyperlink NavigateUrl='<%# EditUrl("AddressID", DataBinder.Eval(Container.DataItem, "AddressID").ToString(), "edit_ip", "ReturnUrl=" + GetReturnUrl()) %>' runat="server" ID="Hyperlink2">
<%# Eval("ExternalIP") %>
</asp:hyperlink>
</ItemTemplate>

View file

@ -45,6 +45,8 @@ namespace WebsitePanel.Portal
gvIPAddresses.PageSize = UsersHelper.GetDisplayItemsPerPage();
ddlItemsPerPage.SelectedValue = gvIPAddresses.PageSize.ToString();
gvIPAddresses.PageIndex = PageIndex;
// pool
if (!String.IsNullOrEmpty(PanelRequest.PoolId))
ddlPools.SelectedValue = PanelRequest.PoolId;
@ -69,6 +71,7 @@ namespace WebsitePanel.Portal
bool vps = ddlPools.SelectedIndex > 1;
gvIPAddresses.Columns[3].Visible = vps;
}
protected void odsIPAddresses_Selected(object sender, ObjectDataSourceStatusEventArgs e)
{
if (e.Exception != null)
@ -84,10 +87,23 @@ namespace WebsitePanel.Portal
return PortalUtils.GetSpaceHomePageUrl(spaceId);
}
public string GetReturnUrl()
{
var returnUrl = Request.Url.AddParameter("Page", gvIPAddresses.PageIndex.ToString());
return Uri.EscapeDataString("~" + returnUrl.PathAndQuery);
}
public int PageIndex
{
get
{
return PanelRequest.GetInt("Page", 0);
}
}
protected void btnAddItem_Click(object sender, EventArgs e)
{
Response.Redirect(EditUrl("PoolID", ddlPools.SelectedValue, "add_ip"), true);
Response.Redirect(EditUrl("PoolID", ddlPools.SelectedValue, "add_ip", "ReturnUrl=" + GetReturnUrl()), true);
}
protected void ddlItemsPerPage_SelectedIndexChanged(object sender, EventArgs e)

View file

@ -43,6 +43,18 @@ namespace WebsitePanel.Portal
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gvIPAddresses.PageIndex = PageIndex;
}
}
public int PageIndex
{
get
{
return PanelRequest.GetInt("IpAddressesPage", 0);
}
}
public string EditModuleUrl(string key, string keyVal, string ctrlKey)
@ -57,7 +69,10 @@ namespace WebsitePanel.Portal
public string GetReturnUrl()
{
var returnUrl = Utils.AddParameterToUrl(Request.Url, "IpAddressesCollapsed", "False");
var returnUrl = Request.Url
.AddParameter("IpAddressesCollapsed", "False")
.AddParameter("IpAddressesPage", gvIPAddresses.PageIndex.ToString());
return Uri.EscapeDataString("~" + returnUrl.PathAndQuery);
}

View file

@ -58,10 +58,10 @@ namespace WebsitePanel.Portal
ShowErrorMessage("SERVER_GET_SERVER", ex);
return;
}
}
IPAddressesHeader.IsCollapsed = IsIpAddressesCollapsed;
}
}
private void BindTools()
{