首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 数据源绑定发生在哪个页面事件中? [已结贴,结贴人:freeflying1222]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • freeflying1222
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 揭贴率:
    发表于:2008-08-19 10:07:07 楼主
    闲来无事,我试了试页面事件,看看数据源控件的数据绑定发生在哪个阶段。
    用了dropdownlist控件,我的结果是
    在Page_PreRender时绑定,于是我
    在Page_Unload时清除DropdownList控件的Item。
    但问题是最后页面出现时dropdownlist还是有Item!不解。代码如下:

    C# code
    public partial class _Default : System.Web.UI.Page { protected void Page_PreInit(object sender, EventArgs e) { //this.DropDownList1.Items.Clear(); Response.Write("Page_PreInit<br/>"); } protected void Page_Init(object sender, EventArgs e) { //this.DropDownList1.Items.Clear(); Response.Write("Page_Init<br/>"); } protected void Page_Load(object sender, EventArgs e) { //this.DropDownList1.Items.Clear(); Response.Write("Page_Load<br/>"); Response.Write("IsPostback:" + IsPostBack.ToString()+"<br/>"); } protected void Page_PreRender(object sender, EventArgs e) { //this.DropDownList1.Items.Clear(); Response.Write("Page_PreRender<br/>"); } protected void Page_Unload(object sender, EventArgs e) { this.DropDownList1.Items.Clear(); //Response.Write("Page_Unload"); } }
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • freeflying1222
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 11:21:531楼 得分:0
    没人知道?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • freeflying1222
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:40:432楼 得分:0
    顶哟!
    关心的帮顶!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • dandanmei
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:49:273楼 得分:5
    好像是:DataBinding 这个事件中
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bingdian37
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 13:57:024楼 得分:15
    1.关于asp.net中数据绑定和相关事件的执行顺序
         
          如果通过指定DataSourceId的方式绑定的,数据绑定将在PreRender阶段进行
          控件的ItemCreated事件将会在每个条目数据绑定之前进行ItemDataBound在数据绑定完成之后进行
          如果使用指定DataSource属性,然后DataBind的方式对控件进行绑定,则DataBind语句在哪个事件中,控件的数据绑定随之发生在哪个事件中
          需要注意的是,当页面PostBack之后,如果控件EnableViewState==True,则会发生LoadState事件,这个时候会触发控件的ItemCreated事件
          但是这个时候不进行数据绑定,e.Item.DateItem中是空的,进行相关操作的话,需要慎重考虑
          对于不是使用DataBind进行手工绑定数据的控件,在EnableViewState==True的情况下,PostBack之后,不再进行数据绑定
          而是从ViewState中恢复原先控件的样子.
          关于在aspx中的几个脚本标记
          1. <%# %>    asp.net数据绑定表达式,在PreRender或者手工绑定数据的事件中执行。内容为表达式(c#中不以;结尾)
          2. <%  %>    在Render事件中执行,已经是最后了。内容为语句(C#中以;结尾)
          3. <%= %>    在Render事件中执行。内容为表达式(c#中不以;结尾)

          假如需要在执行表达式的地方,执行一批语句,可以封装到Page类的一个Public方法中

    2.ASP.Net中控件和页面的相关事件   
    Control_Constructor
    OnPreInit
        Control_OnInit
    OnInit
    OnInitComplete
    OnPreLoad
    Page_Load
        Control_OnLoad
    OnLoadComplete
    OnPreRender
        Control_OnPreRender
        Control_SaveViewState
        Control_SaveViewState
        Control_Render
    Render
        Control_OnUnLoad
    OnUnload

    注意Control_SaveViewState是在OnUnload之前的
    当SaveViewState之后,你再改变什么东西的话,就无效了,无效了
    postback回来,会从viewstate里面恢复回来的,像见鬼一样
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • freeflying1222
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-19 19:41:435楼 得分:0
    引用 4 楼 bingdian37 的回复:
    1.关于asp.net中数据绑定和相关事件的执行顺序
         
          如果通过指定DataSourceId的方式绑定的,数据绑定将在PreRender阶段进行
          控件的ItemCreated事件将会在每个条目数据绑定之前进行ItemDataBound在数据绑定完成之后进行
          如果使用指定DataSource属性,然后DataBind的方式对控件进行绑定,则DataBind语句在哪个事件中,控件的数据绑定随之发生在哪个事件中
          需要注意的是,当页面PostBack之后,如果控…


    看到不是太明白,汗
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • bingdian37
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 10:58:146楼 得分:0
    那段话的意思就是对不同的数据绑定方式分别进行了说明

    如果你是在设计界面或者通过创建一个ObjectDataSource,然后将数据源的Id指定给控件的DataSourceId属性
    这种情况下,数据绑定,发生在页面的PreRender阶段

    如果是通过指定Datasource属性,然后执行DataBind方法进行的数据绑定,执行该方法的语句在哪个事件中,数据绑定就在哪里了...
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved