TheBeerHouse 系列四:从表示层开始下(我怎样限制你的自由??)

- -开始胡说八道前 14.gif
先说说页面的结构~~上次忘了说 04.gif
tostate.gif
-就是这样的~~有意思点意思吧~~首先它几乎所有的页面页的 MasterPageFile="~/Template.master",但是后台都来自于自定义类: BasePage(上有政策~~下有对策阿) 01.gif

我们先来看看,Template.master

None.gif public  partial  class  TemplateMaster : System.Web.UI.MasterPage
ExpandedBlockStart.gifContractedBlock.gif   
dot.gif {
InBlock.gif      
private bool _enablePersonalization = false;
ExpandedSubBlockStart.gifContractedSubBlock.gif       
/**//// <summary>
InBlock.gif      
/// 是否显示PersonalizationManager,他是用来管理WebPar
ExpandedSubBlockEnd.gif       
/// </summary>

InBlock.gif      public bool EnablePersonalization
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
ExpandedSubBlockStart.gifContractedSubBlock.gif         
get dot.gifreturn _enablePersonalization; }
InBlock.gif         
set
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            _enablePersonalization 
= value;
InBlock.gif            
//--- --当用户登录并且输入的是true的时候才显示--也就是说~~不登陆要操作WebPar没门
InBlock.gif
            PersonalizationManager1.Visible = (this.Page.User.Identity.IsAuthenticated && value);
ExpandedSubBlockEnd.gif         }

ExpandedSubBlockEnd.gif      }
 protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif
InBlock.gif    
//--外国朋友的安全意识高啊 - -这里如果没有通过验证则不显示
InBlock.gif
         if (!this.Page.User.Identity.IsAuthenticated)
InBlock.gif            PersonalizationManager1.Visible 
= false;
ExpandedSubBlockEnd.gif      }

ExpandedBlockEnd.gif}

None.gif


----但我认为 EnablePersonalization是个双重保险,当我们输入false即便用户登录了也显示阿,关于
PersonalizationManager-可以看看系列 系列三



第二 BasePage
None.gif
None.gif
None.gif
using  System;
None.gif
using  System.Data;
None.gif
using  System.Configuration;
None.gif
using  System.Collections;
None.gif
using  System.Web;
None.gif
using  System.Web.Security;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.WebControls.WebParts;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
using  MB.TheBeerHouse.BLL.Store;
None.gif
None.gif
namespace  MB.TheBeerHouse.UI
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif   
public class BasePage : System.Web.UI.Page
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif      
protected override void InitializeCulture()
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
string culture = (HttpContext.Current.Profile as ProfileCommon).Preferences.Culture;
InBlock.gif          
//--设置设置与页面向关联的区域性ID
InBlock.gif
         this.Culture = culture;
InBlock.gif          
//--UiId
InBlock.gif
         this.UICulture = culture;
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected override void OnPreInit(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
ExpandedSubBlockEnd.gif}

InBlock.gif
InBlock.gif      
protected override void OnLoad(EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
// add onfocus and onblur javascripts to all input controls on the forum,
InBlock.gif         
// so that the active control has a difference appearance
InBlock.gif          
//---给整个控件在函数中定义的类型挂样式表---------false代表第一次传送的是顶级控件不挂样式表,如果该控件还有子控件则递规调用
InBlock.gif          
//SetInputControlsHighlight继续挂样式表
InBlock.gif
         Helpers.SetInputControlsHighlight(this"highlight"false);
InBlock.gif
InBlock.gif         
base.OnLoad(e);
ExpandedSubBlockEnd.gif      }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif       
/**//// <summary>
InBlock.gif      
/// 获得asp.net比如这里是/TBH_Web 
ExpandedSubBlockEnd.gif       
/// </summary>

InBlock.gif     public string BaseUrl
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
get
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{
InBlock.gif            
//--判断下结尾又没有/
InBlock.gif
            string url = this.Request.ApplicationPath;
InBlock.gif            
if (url.EndsWith("/"))
InBlock.gif                
return url;
InBlock.gif            
else
InBlock.gif                
return url + "/";
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif    
//--FullBaseUrl = "http://localhost:/TBH_Web/",--就是得到网络路径的根目录
InBlock.gif
    public string FullBaseUrl
ExpandedSubBlockStart.gifContractedSubBlock.gif    
dot.gif{
InBlock.gif        
get
ExpandedSubBlockStart.gifContractedSubBlock.gif        
dot.gif{//--this.Request.Url.AbsoluteUri = "http://localhost/TBH_Web/Default3.aspx"
InBlock.gif
            return this.Request.Url.AbsoluteUri.Replace(
InBlock.gif               
this.Request.Url.PathAndQuery, ""+ this.BaseUrl;
InBlock.gif            
//-this.Request.Url.PathAndQuery = "/TBH_Web/Default3.aspx"
ExpandedSubBlockEnd.gif
        }

ExpandedSubBlockEnd.gif    }

InBlock.gif
InBlock.gif       
//---跳转的登陆页
InBlock.gif
      protected void RequestLogin()
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
this.Response.Redirect(FormsAuthentication.LoginUrl + 
InBlock.gif            
"?ReturnUrl=" + this.Request.Url.PathAndQuery);
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
public string FormatPrice(object price)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
return Convert.ToDecimal(price).ToString("N2"+ " " + Globals.Settings.Store.CurrencyCode;
ExpandedSubBlockEnd.gif      }

ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif}

None.gif
// --

- -ok基本上就是这些了让我来进入正题吧 05.gif

上一篇~~ 曾经讲过一种权限管理~~不过是自动的这次让我们来看看- -手动怎么管理阿- -

None.gif namespace  MB.TheBeerHouse.UI.Admin
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif   
public partial class _Default : BasePage
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif      
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif    
//--权限审核
InBlock.gif
         panAdmin.Visible = (this.User.IsInRole("Administrators"));
InBlock.gif         panEditor.Visible 
= (this.User.IsInRole("Administrators"|| this.User.IsInRole("Editors"));
InBlock.gif         panStoreKeeper.Visible 
= (this.User.IsInRole("Administrators"|| this.User.IsInRole("StoreKeepers"));
InBlock.gif         panModerator.Visible 
= (this.User.IsInRole("Administrators"|| this.User.IsInRole("Editors"|| this.User.IsInRole("Modearators"));
InBlock.gif         panContributor.Visible 
= (this.User.IsInRole("Administrators"|| this.User.IsInRole("Editors"|| this.User.IsInRole("Contributors"));
ExpandedSubBlockEnd.gif      }

ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif}

- -接下来看看如何配置这些权限

None.gif using  System;
None.gif
using  System.Data;
None.gif
using  System.Configuration;
None.gif
using  System.Collections;
None.gif
using  System.Collections.Generic;
None.gif
using  System.Web;
None.gif
using  System.Web.Security;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.WebControls.WebParts;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
using  MB.TheBeerHouse;
None.gif
None.gif
namespace  MB.TheBeerHouse.UI.Admin
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif   
public partial class EditUser : BasePage
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif      
string userName = "";
InBlock.gif
InBlock.gif      
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
// retrieve the username from the querystring
InBlock.gif
         userName = this.Request.QueryString["UserName"];
InBlock.gif
InBlock.gif         lblRolesFeedbackOK.Visible 
= false;
InBlock.gif         lblProfileFeedbackOK.Visible 
= false;
InBlock.gif
InBlock.gif         
if (!this.IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif             
//--这个是编辑Profile的自定义控件
InBlock.gif
            UserProfile1.UserName = userName;
InBlock.gif
InBlock.gif            
// 取得用户信息
InBlock.gif
            MembershipUser user = Membership.GetUser(userName);
InBlock.gif            lblUserName.Text 
= user.UserName;
InBlock.gif            lnkEmail.Text 
= user.Email;
InBlock.gif            lnkEmail.NavigateUrl 
= "mailto:" + user.Email;
InBlock.gif             
//--得到注册时间
InBlock.gif
            lblRegistered.Text = user.CreationDate.ToString("f");
InBlock.gif             
//--得到上次进行身份验证的时间
InBlock.gif
            lblLastLogin.Text = user.LastLoginDate.ToString("f");
InBlock.gif            lblLastActivity.Text 
= user.LastActivityDate.ToString("f");
InBlock.gif             
//--是否在线
InBlock.gif
            chkOnlineNow.Checked = user.IsOnline;
InBlock.gif
InBlock.gif             
//--是否可以用成员资格验证
InBlock.gif
            chkApproved.Checked = user.IsApproved;
InBlock.gif
InBlock.gif             
//--这里比较有意思--首先--反映是否因为被锁定而不能验证
InBlock.gif
            chkLockedOut.Checked = user.IsLockedOut;
InBlock.gif
InBlock.gif            
//---如果没有锁定那么不显示上面的chkLockedOut控件
InBlock.gif
            chkLockedOut.Enabled = user.IsLockedOut;
InBlock.gif
InBlock.gif            BindRoles();
ExpandedSubBlockEnd.gif         }

ExpandedSubBlockEnd.gif      }

ExpandedSubBlockStart.gifContractedSubBlock.gif       
/**//// <summary>
InBlock.gif       
/// 绑定角色信息
ExpandedSubBlockEnd.gif       
/// </summary>

InBlock.gif      private void BindRoles()
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
// fill the CheckBoxList with all the available roles, and then select
InBlock.gif         
// those that the user belongs to
InBlock.gif
InBlock.gif          
//---得到所有角色
InBlock.gif
         chklRoles.DataSource = Roles.GetAllRoles();
InBlock.gif         chklRoles.DataBind();
InBlock.gif          
//--得到用户所属的角色集合
InBlock.gif
         foreach (string role in Roles.GetRolesForUser(userName))
InBlock.gif            chklRoles.Items.FindByText(role).Selected 
= true;
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void btnUpdateProfile_Click(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{//--调用自定义控件的保存方法
InBlock.gif
         UserProfile1.SaveProfile();
InBlock.gif         lblProfileFeedbackOK.Visible 
= true;
ExpandedSubBlockEnd.gif      }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif       
/**//// <summary>
InBlock.gif       
/// 创造一个角色
InBlock.gif       
/// </summary>
InBlock.gif       
/// <param name="sender"></param>
ExpandedSubBlockEnd.gif       
/// <param name="e"></param>

InBlock.gif      protected void btnCreateRole_Click(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif          
//---首先看看脚色是否不存在
InBlock.gif
         if (!Roles.RoleExists(txtNewRole.Text.Trim()))
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            Roles.CreateRole(txtNewRole.Text.Trim());
InBlock.gif            BindRoles();
ExpandedSubBlockEnd.gif         }

ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void btnUpdateRoles_Click(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif
InBlock.gif          
//--这个更新比较烦人
InBlock.gif
InBlock.gif         
// first remove the user from all rolesdot.gif,得到用户所有的角色
InBlock.gif
         string[] currRoles = Roles.GetRolesForUser(userName);
InBlock.gif          
//--如果用后有角色存在则删除这个用户得到的所有角色
InBlock.gif
         if (currRoles.Length > 0)
InBlock.gif            Roles.RemoveUserFromRoles(userName, currRoles);
InBlock.gif         
// and then add the user to the selected roles
InBlock.gif
         List<string> newRoles = new List<string>();
InBlock.gif
InBlock.gif          
//--角色列表中的数据收集起来
InBlock.gif
         foreach (ListItem item in chklRoles.Items)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            
if (item.Selected)
InBlock.gif               newRoles.Add(item.Text);
ExpandedSubBlockEnd.gif         }

InBlock.gif          
//--在给用户添加
InBlock.gif
         Roles.AddUserToRoles(userName, newRoles.ToArray());
InBlock.gif
InBlock.gif         lblRolesFeedbackOK.Visible 
= true;
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void chkApproved_CheckedChanged(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         MembershipUser user 
= Membership.GetUser(userName);
InBlock.gif          
//--决定一个用户是否可以验证
InBlock.gif
         user.IsApproved = chkApproved.Checked;
InBlock.gif         Membership.UpdateUser(user);
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void chkLockedOut_CheckedChanged(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
if (!chkLockedOut.Checked)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            MembershipUser user 
= Membership.GetUser(userName);
InBlock.gif             
//--给用户状态解除锁定
InBlock.gif
            user.UnlockUser();
InBlock.gif            chkLockedOut.Enabled 
= false;
ExpandedSubBlockEnd.gif         }

ExpandedSubBlockEnd.gif      }

ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif}


//--在来就是管理了
None.gif using  System;
None.gif
using  System.Data;
None.gif
using  System.Configuration;
None.gif
using  System.Collections;
None.gif
using  System.Web;
None.gif
using  System.Web.Security;
None.gif
using  System.Web.UI;
None.gif
using  System.Web.UI.WebControls;
None.gif
using  System.Web.UI.WebControls.WebParts;
None.gif
using  System.Web.UI.HtmlControls;
None.gif
using  System.Web.Profile;
None.gif
using  MB.TheBeerHouse;
None.gif
None.gif
namespace  MB.TheBeerHouse.UI.Admin
ExpandedBlockStart.gifContractedBlock.gif
dot.gif {
InBlock.gif   
public partial class ManageUsers : BasePage
ExpandedSubBlockStart.gifContractedSubBlock.gif   
dot.gif{
InBlock.gif      
private MembershipUserCollection allUsers = Membership.GetAllUsers();
InBlock.gif
InBlock.gif      
protected void Page_Load(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
if (!this.IsPostBack)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            lblTotUsers.Text 
= allUsers.Count.ToString();
InBlock.gif             
//--获取当前访问网站的成员总数
InBlock.gif
            lblOnlineUsers.Text = Membership.GetNumberOfUsersOnline().ToString();
InBlock.gif             
//--这个作用比较有意义啊~~就是将用户作A ~Z ,+All的排序
InBlock.gif
            string[] alphabet = "A;B;C;D;E;F;G;J;K;L;M;N;O;P;Q;R;S;T;U;V;W;X;Y;Z;All".Split(';');
InBlock.gif            rptAlphabet.DataSource 
= alphabet;
InBlock.gif            rptAlphabet.DataBind();
ExpandedSubBlockEnd.gif         }

ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
private void BindUsers(bool reloadAllUsers)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
if (reloadAllUsers)//True是绑定所有用户
InBlock.gif
            allUsers = Membership.GetAllUsers();
InBlock.gif
InBlock.gif         MembershipUserCollection users 
= null;
InBlock.gif          
//-这里是搜索
InBlock.gif
         string searchText = "";
InBlock.gif          
//--如果搜索不是空的化
InBlock.gif
         if (!string.IsNullOrEmpty(gvwUsers.Attributes["SearchText"]))
InBlock.gif            searchText 
= gvwUsers.Attributes["SearchText"];
InBlock.gif
InBlock.gif         
bool searchByEmail = false;
InBlock.gif         
if (!string.IsNullOrEmpty(gvwUsers.Attributes["SearchByEmail"]))
InBlock.gif            searchByEmail 
= bool.Parse(gvwUsers.Attributes["SearchByEmail"]);
InBlock.gif
InBlock.gif          
//--如果搜索不是空,则查找指定成员
InBlock.gif
         if (searchText.Length > 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            
if (searchByEmail)
InBlock.gif               users 
= Membership.FindUsersByEmail(searchText);
InBlock.gif            
else
InBlock.gif               users 
= Membership.FindUsersByName(searchText);
ExpandedSubBlockEnd.gif         }

InBlock.gif         
else
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif             
//否则绑定所有的
InBlock.gif
            users = allUsers;
ExpandedSubBlockEnd.gif         }

InBlock.gif
InBlock.gif         gvwUsers.DataSource 
= users;
InBlock.gif         gvwUsers.DataBind();
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void rptAlphabet_ItemCommand(object source, RepeaterCommandEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         gvwUsers.Attributes.Add(
"SearchByEmail"false.ToString());
InBlock.gif         
if (e.CommandArgument.ToString().Length == 1)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif         
//--绑定
InBlock.gif
            gvwUsers.Attributes.Add("SearchText", e.CommandArgument.ToString() + "%");
InBlock.gif            BindUsers(
false);
ExpandedSubBlockEnd.gif         }

InBlock.gif         
else
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            gvwUsers.Attributes.Add(
"SearchText""");
InBlock.gif            BindUsers(
false);
ExpandedSubBlockEnd.gif         }

InBlock.gif
ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void gvwUsers_RowCreated(object sender, GridViewRowEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
if (e.Row.RowType == DataControlRowType.DataRow)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            ImageButton btn 
= e.Row.Cells[6].Controls[0as ImageButton;
InBlock.gif            btn.OnClientClick 
= "if (confirm('Are you sure you want to delete this user account?') == false) return false;";
ExpandedSubBlockEnd.gif         }

ExpandedSubBlockEnd.gif      }

InBlock.gif
InBlock.gif      
protected void gvwUsers_RowDeleting(object sender, GridViewDeleteEventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
string userName = gvwUsers.DataKeys[e.RowIndex].Value.ToString();
InBlock.gif         ProfileManager.DeleteProfile(userName);
InBlock.gif         Membership.DeleteUser(userName);
InBlock.gif         BindUsers(
true);
InBlock.gif         lblTotUsers.Text 
= allUsers.Count.ToString();
ExpandedSubBlockEnd.gif      }

InBlock.gif       
//--如果单击搜索
InBlock.gif
      protected void btnSearch_Click(object sender, EventArgs e)
ExpandedSubBlockStart.gifContractedSubBlock.gif      
dot.gif{
InBlock.gif         
bool searchByEmail = (ddlSearchTypes.SelectedValue == "E-mail");
InBlock.gif          
//---这里有意思用的是like搜索
InBlock.gif
         gvwUsers.Attributes.Add("SearchText""%" + txtSearchText.Text + "%");
InBlock.gif         gvwUsers.Attributes.Add(
"SearchByEmail", searchByEmail.ToString());
InBlock.gif         BindUsers(
false);
ExpandedSubBlockEnd.gif      }

ExpandedSubBlockEnd.gif   }

ExpandedBlockEnd.gif}

None.gif

 

//---权限的应用

None.gif if  ( ! this .IsPostBack)
ExpandedBlockStart.gifContractedBlock.gif         
dot.gif {
InBlock.gif            
// if a ID param is present on the querystring, switch to Edit mode for that article,
InBlock.gif            
// but only after checking that the current user is an Administrator or an Editor
InBlock.gif
            if (!string.IsNullOrEmpty(this.Request.QueryString["ID"]))
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif            
//--如果用户登录了并且是有管理员权限--或者有编辑角色
InBlock.gif
               if (this.User.Identity.IsAuthenticated &&
InBlock.gif                  (
this.User.IsInRole("Administrators"|| this.User.IsInRole("Editors")))
ExpandedSubBlockStart.gifContractedSubBlock.gif               
dot.gif{
InBlock.gif
//--将DataView切换成--带有编辑模式的状态
InBlock.gif
                  dvwArticle.ChangeMode(DetailsViewMode.Edit);
InBlock.gif                
//--然后帮定  
InBlock.gif
        UpdateTitle();
ExpandedSubBlockEnd.gif               }

InBlock.gif               
else
InBlock.gif                  
throw new SecurityException("You are not allowed to edit existent articles!");
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif         }

None.gif
None.gif
// ---这个是在创建DabeView里面的一项的时候形成的
None.gif
  protected   void  dvwArticle_ItemCreated( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif      
dot.gif {
InBlock.gif         Control ctl 
= dvwArticle.FindControl("txtBody");
InBlock.gif         
if (ctl != null)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif         
//---这个是一个javascript的在线编辑器
InBlock.gif
            FCKeditor txtBody = ctl as FCKeditor;
InBlock.gif        
//---这里估计是制定文件夹的位置,因有点脚本哦  
InBlock.gif
            txtBody.BasePath = this.BaseUrl + "FCKeditor/";
ExpandedSubBlockEnd.gif         }

ExpandedBlockEnd.gif      }

None.gif 
// --再绑定的时候触发
None.gif
       protected   void  dvwArticle_DataBound( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif      
dot.gif {
InBlock.gif         
// Tn InserMode, preselect the checkboxes to make the article listed and to allow comments
InBlock.gif         
// The Approved checkbox is selected and enabled only if the user belongs to the
InBlock.gif         
// Administrators or Editors group instead.
InBlock.gif         
//--如果是插入模式
InBlock.gif
         if (dvwArticle.CurrentMode == DetailsViewMode.Insert)
ExpandedSubBlockStart.gifContractedSubBlock.gif         
dot.gif{
InBlock.gif            CheckBox chkApproved 
= dvwArticle.FindControl("chkApproved"as CheckBox;
InBlock.gif            CheckBox chkListed 
= dvwArticle.FindControl("chkListed"as CheckBox;
InBlock.gif            CheckBox chkCommentsEnabled 
= dvwArticle.FindControl("chkCommentsEnabled"as CheckBox;
InBlock.gif
InBlock.gif            chkListed.Checked 
= true;
InBlock.gif            chkCommentsEnabled.Checked 
= true;
InBlock.gif             
//--除非是管理员或者是有编辑权限否则-这里返回false
InBlock.gif
            bool canApprove = (this.User.IsInRole("Administrators"|| this.User.IsInRole("Editors"));
InBlock.gif            chkApproved.Enabled 
= canApprove;
InBlock.gif            chkApproved.Checked 
= canApprove;
ExpandedSubBlockEnd.gif         }

ExpandedBlockEnd.gif      }

None.gif
None.gif     
protected   void  dvwArticle_ModeChanged( object  sender, EventArgs e)
ExpandedBlockStart.gifContractedBlock.gif      
dot.gif {
InBlock.gif         UpdateTitle();
ExpandedBlockEnd.gif      }

None.gif
None.gif      
private   void  UpdateTitle()
ExpandedBlockStart.gifContractedBlock.gif      
dot.gif {
InBlock.gif         lblNewArticle.Visible 
= (dvwArticle.CurrentMode == DetailsViewMode.Insert);
InBlock.gif         lblEditArticle.Visible 
= !lblNewArticle.Visible;
ExpandedBlockEnd.gif      }

转载于:https://www.cnblogs.com/ajaxren/archive/2007/05/17/750695.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值