private void dlUrlMap_ItemCommand(object sender, DataListCommandEventArgs e) { int urlID = Convert.ToInt32(dlUrlMap.DataKeys[e.Item.ItemIndex]); FriendlyUrl friendlyUrl = new FriendlyUrl(urlID); switch (e.CommandName) { case "edit": dlUrlMap.EditItemIndex = e.Item.ItemIndex; Control c = e.Item.FindControl("ddPagesEdit"); DropDownList dd = null; if ((c != null) && (pageList != null)) { dd = (DropDownList)c; dd.DataSource = pageList; dd.DataBind(); } PopulateControls(); if (dd != null) { String selection = ParsePageId(friendlyUrl.RealUrl); if (selection.Length > 0) { ListItem listItem = dd.Items.FindByValue(selection); if (listItem != null) { dd.ClearSelection(); listItem.Selected = true; } } } break; case "apply": TextBox txtItemFriendlyUrl = (TextBox)e.Item.FindControl("txtItemFriendlyUrl"); if (txtItemFriendlyUrl.Text.Length > 0) { Control cEdit = e.Item.FindControl("ddPagesEdit"); if (cEdit != null) { DropDownList ddEdit = (DropDownList)cEdit; friendlyUrl.Url = txtItemFriendlyUrl.Text; if (WebPageInfo.IsPhysicalWebPage("~/" + friendlyUrl.Url)) { this.lblError.Text = Resource.FriendlyUrlWouldMaskPhysicalPageWarning; return; } int pageId = -1; if (int.TryParse(ddEdit.SelectedValue, out pageId)) { if (pageId > -1) { PageSettings page = new PageSettings(siteSettings.SiteId, pageId); friendlyUrl.PageGuid = page.PageGuid; } } friendlyUrl.RealUrl = "Default.aspx?pageid=" + ddEdit.SelectedValue; friendlyUrl.Save(); } WebUtils.SetupRedirect(this, Request.RawUrl); } else { this.lblError.Text = Resource.FriendlyUrlInvalidFriendlyUrlMessage; } break; case "applymanual": if ( ( (((TextBox)e.Item.FindControl("txtItemFriendlyUrl")).Text.Length > 0) ) && ( (((TextBox)e.Item.FindControl("txtItemRealUrl")).Text.Length > 0) ) ) { friendlyUrl.Url = ((TextBox)e.Item.FindControl("txtItemFriendlyUrl")).Text; if (WebPageInfo.IsPhysicalWebPage("~/" + friendlyUrl.Url)) { this.lblError.Text = Resource.FriendlyUrlWouldMaskPhysicalPageWarning; return; } friendlyUrl.RealUrl = ((TextBox)e.Item.FindControl("txtItemRealUrl")).Text; friendlyUrl.PageGuid = Guid.Empty; friendlyUrl.Save(); WebUtils.SetupRedirect(this, Request.RawUrl); } else { this.lblError.Text = Resource.FriendlyUrlInvalidEntryMessage; } break; case "delete": FriendlyUrl.DeleteUrl(urlID); WebUtils.SetupRedirect(this, Request.RawUrl); break; case "cancel": WebUtils.SetupRedirect(this, Request.RawUrl); break; } }