using Microsoft.SharePoint.WebControls;
using System.Web.Security;
using System.Web.UI.WebControls;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Globalization;
using Microsoft.SharePoint.Utilities;
namespace CKS.FormsBasedAuthentication
{
///
/// Code behind for UsersDisp.aspx
///
public partial class UsersDisp : LayoutsPageBase
{
protected override void OnInit(System.EventArgs e)
{
// display error if membership provider not configured
if (!Utils.IsProviderConfigured())
{
lblMessage.Text = LocalizedString.GetGlobalString("FBAPackWebPages","MembershipNotConfigured");
MemberGrid.Visible = false;
ToolBarPlaceHolder.Visible = false;
onetidNavNodesTB.Visible = false;
SearchControls.Visible = false;
}
base.OnInit(e);
}
protected void Search_Click(object sender, System.EventArgs e)
{
UserDataSource.SearchText = SearchText.Text;
MemberGrid.DataBind();
}
protected override bool RequireSiteAdministrator
{
get { return true; }
}
// ModifiedBySolvion
// bhi - 20.12.2011
// remember sort and search settings
protected override void OnLoad(System.EventArgs e)
{
base.OnLoad(e);
if (!Page.IsPostBack)
{
if (!string.IsNullOrEmpty(Request.QueryString["SortField"]))
{
SortDirection dir = SortDirection.Ascending;
if (!string.IsNullOrEmpty(Request.QueryString["SortDir"]))
{
if (Request.QueryString["SortDir"].ToLower() == "desc")
{
dir = SortDirection.Descending;
}
}
MemberGrid.Sort(Request.QueryString["SortField"], dir);
}
if (!string.IsNullOrEmpty(Request.QueryString["PageIndex"]))
{
int pageIndex = 0;
if (int.TryParse(Request.QueryString["PageIndex"], out pageIndex))
{
MemberGrid.PageIndex = pageIndex;
}
}
if (!string.IsNullOrEmpty(Request.QueryString["k"]))
{
SearchText.Text = Request.QueryString["k"];
UserDataSource.SearchText = SearchText.Text;
}
}
}
protected override void OnPreRender(System.EventArgs e)
{
base.OnPreRender(e);
string source = SPHttpUtility.UrlKeyValueEncode(this.CreateSourceUrl()); //SPHttpUtility.UrlPathEncode(this.CreateSourceUrl(), true);
(MemberGrid.Columns[0] as SPMenuField).NavigateUrlFormat = "UserEdit.aspx?UserName={0}&Source=" + source;
Edit.ClientOnClickNavigateUrl = "UserEdit.aspx?UserName=%USERNAME%&Source=" + source;
ResetPassword.ClientOnClickNavigateUrl = "UserResetPassword.aspx?UserName=%USERNAME%&Source=" + source;
Delete.ClientOnClickNavigateUrl = "UserDelete.aspx?UserName=%USERNAME%&Source=" + source;
(idNewNavNode as ToolBarButton).NavigateUrl = "UserNew.aspx?Source=" + source;
}
private string CreateSourceUrl()
{
string url = "FBA/Management/UsersDisp.aspx";
SPUtility.DetermineRedirectUrl(url,SPRedirectFlags.RelativeToLayoutsPage, this.Context,null, out url);
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append(url);
Dictionary values = new Dictionary();
if (!string.IsNullOrEmpty(MemberGrid.SortExpression))
{
values.Add("SortField", MemberGrid.SortExpression);
switch (MemberGrid.SortDirection)
{
case SortDirection.Descending:
values.Add("SortDir", "Desc");
break;
default:
values.Add("SortDir", "Asc");
break;
}
}
if (MemberGrid.PageIndex > 0)
{
values.Add("PageIndex", MemberGrid.PageIndex.ToString());
}
if (!string.IsNullOrEmpty(UserDataSource.SearchText))
{
values.Add("k", UserDataSource.SearchText);
}
if (values.Count > 0)
{
stringBuilder.Append("?");
bool flag = true;
foreach (KeyValuePair current in values)
{
if (!flag)
{
stringBuilder.Append("&");
}
stringBuilder.Append(string.Format(CultureInfo.InvariantCulture, "{0}={1}", new object[]
{
HttpUtility.UrlEncode(current.Key),
HttpUtility.UrlEncode(current.Value)
}));
flag = false;
}
}
return stringBuilder.ToString();
}
// EndModifiedBySolvion
}
}