Пример #1
0
        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;
            }
        }