文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>dropdownlist动态绑定viewstate禁用后取值

dropdownlist动态绑定viewstate禁用后取值

时间:2010-10-08  来源:蓝丶 sky

一直对asp.net页面周期了解得很少,尤其是一些底层机制,也一直将过且过,今天看到有个问题

就是禁用viewstate后DropDownList取不到值(DropDownList动态绑定的,不是前台赋值),自己测试了下也确实取不到。

然后网上找了下资料,其实是取得到的,只是逻辑不对

以下是摘自csdn-Jinglecat(晓风)的话

实际上即使你禁用ViewState的,也是可以的,
因为DropDownList实现了IPostBackDataHandler   ,其   SelectedValue 是每次回发都会回串的,并且保持选中状态

那么这个如何解决呢??必须要在page-load里绑定dropdownlist的数据的嘛...
========
如果你要动态的添加项,并且又要禁用   ViewState,那么不能再     Load   阶段   处理,在   Init   阶段

代码 void Page_Init(object sender, EventArgs e)
    {
        Bind();
    }
    public void Bind()
    {
        using (SqlConnection conn = new SqlConnection())
        {
            conn.ConnectionString = ConfigurationManager.ConnectionStrings["DropDownConnection"].ConnectionString;
            conn.Open();
            SqlCommand cmd = new SqlCommand("select * from province", conn);
            DropDownList1.DataSource = cmd.ExecuteReader();
            DropDownList1.DataTextField = "name";
            DropDownList1.DataValueField = "id";
            DropDownList1.DataBind();
        }
    }

 

当你禁用   ViewState   之后,页面回发之间不维护控件状态,那么你得确保,动态添加的代码每次
都能够执行,并且为了等到Post回来的值,只有在   Init   阶段或者更高处理,   因为   IPostBackDataEventHandler   接口中加载回发数据在   Load   之前完成 

 

确实很有必要要看一下页面周期!

现在就开始奋斗!

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载