Repeater控件自定义数据源代码绑定实例

前台repeater定义:
         <table  border="0" cellpadding="0" cellspacing="1" style="FONT-SIZE:12px"  width="100%" >
    
    <asp:repeater id="rptArticleManage" Runat="server">
     <HeaderTemplate>
      <tr  bgcolor="#FFD9B9">
       <td align="center">选择</td>
       <td align="center">标题</td>       
       <td align="center">频道</td>
       <td align="center">栏目</td>
       <td align="center">二级栏目</td>
       <td align="center">创建时间</td>
       <td align="center">省份</td>
       <td align="center">城市</td>
       <td align="center">编辑</td>
       <td align="center">点击数</td>
       <td align="center">权重</td>
       <td align="center">审核</td>
       <td align="center">操作</td>
      </tr>
     </HeaderTemplate>
     <ItemTemplate>
      <tr bgcolor="#d6dff7">
       <td>        
        <input type="checkbox" id="chkb" runat="server" NAME="chkb">         
        <input type=hidden id="hidCpID" value='<%#DataBinder.Eval(Container.DataItem,"News_ID")%>' runat=server NAME="hidCpID">
        <input type=hidden id="hidUrl" value='<%#DataBinder.Eval(Container.DataItem,"News_Path")%>' runat=server NAME="hidUrl">        
       </td>
       <td><a href='InForDetail.aspx?ID=<%#DataBinder.Eval(Container.DataItem,"News_ID")%>&channel=<%=Request.QueryString["channel"]%>' title="文章标题:<%#DataBinder.Eval(Container.DataItem, "News_Title")%>"  >
       
         <%#useually.getleft(DataBinder.Eval(Container.DataItem, "News_Title").ToString(),20)%>          
        
         </a>
                
       </td>
       <td><%#DataBinder.Eval(Container.DataItem, "Channel_Name")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "Column_Name")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "Class1_Name")%></td>
           <td><%#DataBinder.Eval(Container.DataItem, "News_Date")%></td>
       <td><%#DataBinder.Eval(Container.DataItem,"Province")%></td>
       <td><%#DataBinder.Eval(Container.DataItem,"City")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "News_Edit")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "Click_Number")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "News_Weight")%></td>
       <td align="center"><%#DataBinder.Eval(Container.DataItem, "News_Verify").ToString() != "" ? "已审核" : "<span style='color: #ff0033'>未审核</span>"%></td>
       <td align="center"><a href='movechannell.aspx?ID=<%#DataBinder.Eval(Container.DataItem,"News_ID")%>'>转移频道</a></td>
      </tr>
     </ItemTemplate>  
     
     <AlternatingItemTemplate>
          
     <tr bgcolor="#FEFBE0">
                         <td>
       <input type="checkbox" id="chkb" runat="server" NAME="chkb">
       <input type=hidden id="hidCpID" value='<%#DataBinder.Eval(Container.DataItem,"News_ID")%>' runat=server NAME="hidCpID">
       <input type=hidden id="hidUrl" value='<%#DataBinder.Eval(Container.DataItem,"News_Path")%>' runat=server NAME="hidUrl"> 
       </td>
     <td><a href='InForDetail.aspx?ID=<%#DataBinder.Eval(Container.DataItem,"News_ID")%>&channel=<%=Request.QueryString["channel"]%>' title="文章标题:<%#DataBinder.Eval(Container.DataItem, "News_Title")%>"  >
       
         <%#useually.getleft(DataBinder.Eval(Container.DataItem, "News_Title").ToString(),20)%>          
       
        </a>
       </td>
       <td><%#DataBinder.Eval(Container.DataItem, "Channel_Name")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "Column_Name")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "Class1_Name")%></td>
           <td><%#DataBinder.Eval(Container.DataItem, "News_Date")%></td>
       <td><%#DataBinder.Eval(Container.DataItem,"Province")%></td>
       <td><%#DataBinder.Eval(Container.DataItem,"City")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "News_Edit")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "Click_Number")%></td>
       <td><%#DataBinder.Eval(Container.DataItem, "News_Weight")%></td>
       <td align="center"><%#DataBinder.Eval(Container.DataItem, "News_Verify").ToString() != "" ? "已审核" : "<span style='color: #ff0033'>未审核</span>"%></td>
       <td align="center"><a href='movechannell.aspx?ID=<%#DataBinder.Eval(Container.DataItem,"News_ID")%>'>转移频道</a></td>
       </tr>
     
     </AlternatingItemTemplate>
    
    </asp:repeater>   
    
   </table>
 
后台cs代码:
 
     public string channel;
     public int is_yc;
     public int fenye;
    #region 分页属性
    private int pageSize = 16;
    private int recordCount;
    public int PageCount
    {
        get
        {
            return Convert.ToInt32(ViewState["PageCount"]);
        }
    }
    public int PageSize
    {
        get
        {
            return pageSize;
        }
    }
    public int PageIndex
    {
        get
        {
            return Convert.ToInt32(ViewState["CurrentPage"].ToString());
        }
        set
        {
            ViewState["CurrentPage"] = value;
        }
    }
    public int RecordCount
    {
        get
        {
            return recordCount;
        }
    }
    #endregion
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Session["hg_loginname"] == null)
        {
            Response.Redirect("../login.aspx");
        }
        else
        {
             channel=Request.QueryString["channel"];
             lb_message.Text = "->" + channel;
        }
        //判断是否具有管理信息的功能
        if (!HasPermission("26"))
        {
            Response.Write("<script>alert('对不起,你不具有管理信息的权限!')</script>");
            Response.Write("<script>history.go(-1);</script>");
         
        }
        if (!IsPostBack)
        {
           //传递存储过程参数的初始化
            ViewState["editor"] = "";
            ViewState["LookOwn"] = "";        //查看登陆用户发布的信息!
            ViewState["LookUnPassed"] = "";   //查看为审核的信息!
            is_yc=0; //查看自主原创的信息!
            ViewState["CurrentPage"] = 0;
            ViewState["PageCount"] = 0;
            ViewState["Keyword"] = "";
            ViewState["editor"] = Session["hg_loginname"].ToString();
            RptDataBind();    
        }
        //为删除按钮添加删除前提示确认脚本
        btnDelete.Attributes.Add(" "return confirm('您真的要删除选定的记录吗?');");
        // 在此处放置用户代码以初始化页面
    }
    #region 数据绑定
    private void RptDataBind()
    {
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["dfhgConnString"].ConnectionString);
        SqlCommand cmd = new SqlCommand("InforManage_HuaGong123", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add(new SqlParameter("@PageIndex", SqlDbType.Int));
        cmd.Parameters["@PageIndex"].Value = PageIndex;  //页索引
        cmd.Parameters.Add(new SqlParameter("@PageSize", SqlDbType.Int));
        cmd.Parameters["@PageSize"].Value = PageSize;  //每页记录大小
        cmd.Parameters.Add(new SqlParameter("@RecordCount", SqlDbType.Int));
        cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output;   //返回--记录总数
        cmd.Parameters.Add(new SqlParameter("@PageCount", SqlDbType.Int));
        cmd.Parameters["@PageCount"].Direction = ParameterDirection.Output;  //返回--总页数
        cmd.Parameters.Add(new SqlParameter("@channel", SqlDbType.NVarChar, 10));
        cmd.Parameters["@channel"].Value = channel; //频道
        cmd.Parameters.Add(new SqlParameter("@editor", SqlDbType.VarChar, 10));
        cmd.Parameters["@editor"].Value = ViewState["editor"];   //添加作者
        cmd.Parameters.Add(new SqlParameter("@lookUnpassed", SqlDbType.Char, 1));
        cmd.Parameters["@lookUnpassed"].Value = ViewState["LookUnPassed"];   //未审核的
        cmd.Parameters.Add(new SqlParameter("@lookOwn", SqlDbType.Char, 1));
        cmd.Parameters["@lookOwn"].Value = ViewState["LookOwn"];     //自己发布的信息
        cmd.Parameters.Add(new SqlParameter("@is_yc", SqlDbType.Bit));
        cmd.Parameters["@is_yc"].Value =is_yc;     //原创的信息
        cmd.Parameters.Add(new SqlParameter("@keyword", SqlDbType.NVarChar, 100));
        cmd.Parameters["@keyword"].Value = ViewState["Keyword"].ToString();   //查询关键字
        try
        {
            cmd.Connection.Open();
            SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            rptArticleManage.DataSource = reader;
            rptArticleManage.DataBind();
            reader.Close();
            recordCount = (int)cmd.Parameters["@RecordCount"].Value;  //记录返回的记录数
            ViewState["PageCount"] = (int)cmd.Parameters["@PageCount"].Value;  //记录返回的页数
            fenye = (int)ViewState["PageCount"];
            cmd.Dispose();
        }
        catch (SqlException ex)
        {
            Response.Write(ex.ToString());
            Response.End();
        }
        SetPagingState();   
    }
    #endregion 
  
    #region 分页导航按钮点击监听事件
    private void LBtnNavigation_Click(object sender, System.EventArgs e)
    {
        LinkButton btn = (LinkButton)sender;
        switch (btn.CommandName)
        {
            case "First":
                PageIndex = 0;
                break;
            case "Prev":
                PageIndex = PageIndex - 1;
                break;
            case "Next":
                PageIndex = PageIndex + 1;
                break;
            case "Last":
                PageIndex = PageCount - 1;
                break;
            case "Go":
                try
                {
                    Convert.ToInt32(txtGo.Text);
                }
                catch
                {
                    return;
                }
                if (Convert.ToInt32(txtGo.Text) < 1)
                {
                    PageIndex = 0;
                }
                else if (Convert.ToInt32(txtGo.Text) > PageCount - 1)
                {
                    PageIndex = PageCount - 1;
                }
                else
                {
                    PageIndex = Convert.ToInt32(txtGo.Text) - 1;
                }
                break;
        }
        RptDataBind();
    }
    #endregion
  
    #region 删除所选信息
    protected void btnDelete_Click1(object sender, EventArgs e)
    {
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["dfhgConnString"].ConnectionString);
        SqlCommand cmd = new SqlCommand("InForDelete_HuaGong", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@ID", SqlDbType.Int, 4);   //参数绑定    
        foreach (RepeaterItem item in this.rptArticleManage.Items)
        {
            HtmlInputCheckBox cb = (HtmlInputCheckBox)item.FindControl("chkb");
            HtmlInputHidden hCpID = (HtmlInputHidden)item.FindControl("hidCpID");
            HtmlInputHidden hCpUrl = (HtmlInputHidden)item.FindControl("hidUrl");
            if (cb.Checked == true)
            {
                cmd.Parameters["@ID"].Value = Convert.ToInt32(hCpID.Value);
                string dir = Server.MapPath(("News_hmtl/" + hCpUrl.Value));//用来生成文件夹
                if (File.Exists(dir))
                {
                    File.Delete(dir);
                }
                try
                {   cmd.Connection.Open();
                    cmd.ExecuteNonQuery();
              
                }
                catch (SqlException ex)
                {
                    Response.Write("删除失败,错误信息如下:</br>");
                    Response.Write(ex.ToString());
                    Response.End();
                }
                finally
                {
                    cmd.Connection.Close();
                    cmd.Dispose();
                }
            }
        }
        Response.Write("<script>alert('信息记录删除成功,物理静态文件同时被清除!');</script>");       
        RptDataBind();
    }
    #endregion
    #region 搜索
    private void btnSearch_Click(object sender, System.EventArgs e)
    {
        if (txtKeyword.Text.Trim().Length == 0)
        {
            Response.Write("<script>alert('请输入关键字');</script>");
            RptDataBind();
            return;
        }
        ViewState["Keyword"] = "%" + txtKeyword.Text.Trim() + "%";   //用"存储容器 "--ViewState--存储查询数据
        RptDataBind();
    }
    #endregion 
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
        //
        // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
        //
        InitializeComponent();
        base.OnInit(e);
    }
    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
        //this.lb_yc.Click += new System.EventHandler(this.lb_yc);
        this.btnLookUnPassed.Click += new System.EventHandler(this.btnLookUnPassed_Click);
        this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
        this.btnLookOwn.Click += new System.EventHandler(this.btnLookOwn_Click);
        this.LBtnFirst.Click += new System.EventHandler(this.LBtnNavigation_Click);
        this.LBtnPrev.Click += new System.EventHandler(this.LBtnNavigation_Click);
        this.LBtnNext.Click += new System.EventHandler(this.LBtnNavigation_Click);
        this.LBtnLast.Click += new System.EventHandler(this.LBtnNavigation_Click);
        this.LBtnGo.Click += new System.EventHandler(this.LBtnNavigation_Click);
        this.Load += new System.EventHandler(this.Page_Load);
    }
    #endregion  
    #region 控制导航按钮或数字的状态
    /// <summary>
    /// 控制导航按钮或数字的状态
    /// </summary>
    public void SetPagingState()
    {
        if (PageCount <= 1)//( RecordCount <= PageSize )//小于等于一页
        {
            this.LBtnFirst.Enabled = false;
            this.LBtnPrev.Enabled = false;
            this.LBtnNext.Enabled = false;
            this.LBtnLast.Enabled = false;
        }
        else //有多页
        {
            if (PageIndex == 0)//当前为第一页
            {
                this.LBtnFirst.Enabled = false;
                this.LBtnPrev.Enabled = false;
                this.LBtnNext.Enabled = true;
                this.LBtnLast.Enabled = true;
            }
            else if (PageIndex == PageCount - 1)//当前为最后页
            {
                this.LBtnFirst.Enabled = true;
                this.LBtnPrev.Enabled = true;
                this.LBtnNext.Enabled = false;
                this.LBtnLast.Enabled = false;
            }
            else //中间页
            {
                this.LBtnFirst.Enabled = true;
                this.LBtnPrev.Enabled = true;
                this.LBtnNext.Enabled = true;
                this.LBtnLast.Enabled = true;
            }
        }
        this.LtlPageSize.Text = PageSize.ToString();
        this.LtlRecordCount.Text = RecordCount.ToString();
        if (RecordCount == 0)
        {
            this.LtlPageCount.Text = "0";
            this.LtlPageIndex.Text = "0";
        }
        else
        {
            this.LtlPageCount.Text = PageCount.ToString();
            this.LtlPageIndex.Text = (PageIndex + 1).ToString();
        }
    }
    #endregion
   
    #region 察看待审核的信息
    private void btnLookUnPassed_Click(object sender, System.EventArgs e)
    {
        ViewState["Keyword"] = "";
        ViewState["LookUnPassed"] = "T";
        ViewState["LookOwn"] = "";
        ViewState["is_yc"] = "";
        is_yc = 0;
        RptDataBind();
    }
    #endregion
    #region 查看自发信息
    private void btnLookOwn_Click(object sender, System.EventArgs e)
    {
        ViewState["Keyword"] = "";
        ViewState["LookUnPassed"] = "";
        ViewState["LookOwn"] = "T";
        is_yc = 0;
        RptDataBind();
    }
    #endregion
    #region 查看原创信息
    protected void lb_yc_Click(object sender, EventArgs e)
    {
        ViewState["Keyword"] = "";
        ViewState["LookUnPassed"] = "";
        ViewState["LookOwn"] = "";
        is_yc = 1;
        RptDataBind();
    }
    #endregion
    #region 判断主体对象是否具有指定的权限
    /// <summary>
    /// 判断主体对象是否具有指定的权限
    /// </summary>
    /// <param name="permName">要进行检查的权限名称</param>
    /// <returns>如果具有指定权限,则返回true,否则返回false</returns>
    private bool HasPermission(string permid)
    {
        ArrayList permissions = (ArrayList)Session["hg_loginname_perlist"];
        if (permissions == null)
            return false;
        foreach (object perm in permissions)
        {
            if (perm.ToString() == permid)
                return true;
        }
        return false;
    }
    #endregion
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值