• ASP.NET母版页中调用内容页的方法和web用户控件调用.aspx页面里的方法


    web用户控件调用.aspx页面里的方法

    今天做一个web用户控件里面有两个repeater一个是显示数据的,一个分页的。绑定数据部分我重写了绑定事件就搞定了。可是我是利用分页控件来控制repeater的数据,所以就用要到单击分页控件调用页面的绑定事件来重新去得不同页数的数据。在网上找了一下发现了以下这个方法。我在 分页控件的ItemCommand事件中 
    protected void repCtrl_ItemCommand(object source, RepeaterCommandEventArgs e)
            {
                Int32 count = Count;
                Int32 pagesize = PageSize; 
                Int32 pageindex = PageIndex;
                Int32 pi = count % pagesize == 0 ? count / pagesize : count / pagesize + 1;

                if (e.CommandName == "page")
                {
                    if (e.CommandArgument.ToString() == "next")
                    {
                         //分页处理部分省略
                    }
                }
                System.Web.UI.Page p = this.Page;
                //用反射方法动态调用父页面的方法
                Type pageType = p.GetType();
                MethodInfo mi = pageType.GetMethod("BoundList");
                mi.Invoke(p, new object[] { PageIndex, PageSize, SortField, OrderType });//new object[] {你要传递的参数
    }
    接下来是web .aspx页面的方法:

     public void BoundList(int pageIndex, int pageSize, string sortFiled, short orderType)
            {// 这里写相应的程序}
    就这样就可以调用了。

    ASP.NET母版页中调用内容页的方法

    首先要在母版页定义委托(delegate ):
    namespace NotSee.Web.Manage
    {
        public partial class Sys : System.Web.UI.MasterPage
        {
            public delegate void ElementSelectedChangeHandler();
           //实例化委托,其实这也是一个属性
            public ElementSelectedChangeHandler ElementSelectedChange { private get; set; }
            protected void Page_Load(object sender, EventArgs e)
            {//notsee.info技术交流分享
             }
             //母版里的按钮
            protected void BtnSearch_Click(object sender, EventArgs e)
            {      
                   if (ElementSelectedChange != null)
                    {
                          ElementSelectedChange();
                    }
            }
        }
    }
     

    接着例如:notsee.aspx 内容页 我们需要在这个notsee.aspx页中指定一个与委托签名匹配的方法:
    namespace WMS.Web.Manage
    {   
        public partial class notsee: System.Web.UI.Page
        {
               Master.ElementSelectedChange = this.ElementSelectedChange;
               protected void Page_Load(object sender, EventArgs e)
               {//notsee.info技术交流分享
               }
               void  ElementSelectedChange()
               {
                  //您的处理方案
               }
        }
    }
     转自http://www.notsee.info/tech/tech.xml

  • 相关阅读:
    远程桌面无法复制粘贴
    tns no listener
    10046 trace and sql
    MySQL replace into 用法(insert into 的增强版)
    USB接口大百科:看完你就分得清充电线了
    世界富人的财富诀窍
    php 23种设计模式的趣味解释
    23种设计模式
    设计模式的分类记忆方法
    项目管理基础:考试必过神之冲刺背诵口诀精简
  • 原文地址:https://www.cnblogs.com/JuneZhang/p/1885554.html
Copyright © 2020-2023  润新知