using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace BookDemo.QA
{
    public partial class Login : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //在页面初始化，未回传时执行
            if (!IsPostBack)
            {
                BindToRptUsers();//将数据绑定到rptUsers控件上
            }
        }
        /// <summary>
        /// 将数据绑定到rptUsers控件上
        /// </summary>
        private void BindToRptUsers()
        {
            #region 原始读取数据库方法
            //BookDemoEntities ctx = new BookDemoEntities();//实例化BookDemoEntities
            //rptUsers.DataSource = ctx.QAUserInfo.ToList();//将所有的QAUserInfo数据作为数据源
            //rptUsers.DataBind();//将数据绑定到rptUsers上
            #endregion

            #region 从缓存中读取
            UserInfoCache userInfoCache = new UserInfoCache();
            rptUsers.DataSource = userInfoCache.Data;//将所有的QAUserInfo数据作为数据源
            rptUsers.DataBind();//将数据绑定到rptUsers上
            #endregion
        }

        protected void rptUsers_ItemCommand(object source, RepeaterCommandEventArgs e)
        {
            //判断触发回传事件的控件CommandName属性
            //PS:虽然这里只有一个按钮，我们不判断也行，但做这个判断使代码更严谨、健壮，是一个好习惯
            if (e.CommandName == "Login")
            {
                Session["UserName"] = e.CommandArgument.ToString();//在Cookie中记录用户名
                if (Request.QueryString["ReturnUrl"] != null)
                {
                    //如果来路网页的参数不为空，则在登陆之后，返回来路的网页
                    Response.Redirect(Server.UrlDecode(Request.QueryString["ReturnUrl"].ToString()), true);
                }
            }
        }
    }
}
