问候,希望这个复杂问题有一个简单的解决方案。请纠正我在此过程中的任何误解。 前段时间我写了一个具有动态列功能的GrivView。这些列将添加到OnInit页面事件中,以便在应用视图状态之前添加它们。它们在页面的这一部分中的每个帖子上重新应用,以便在应用视图状态时,维护用户已做出但未提交到数据库的更改。如果您不希望视图状态控制树不同步并将所有内容都搞砸,也需要它。
我目前的问题是,我现在的任务是根据下拉列表执行基本相同的事情,其中列将不同(如果ddl发生更改,我将重新创建GridView,并且用户将失去所有工作警告)。如何获取OnInit事件中下拉列表中选择的ID?我的理解是,当用户在客户端更改ddl的值时,将触发JavaScript“__doPostBack”调用。然后页面请求被发送到服务器,但是当事件处理程序中出现新值时,我已经超过了我需要添加列的点。
当人们试图确定什么控件导致回发但是代码依赖于page.Request.Params.Get(“__ EVENTTARGET”)时,我看到了我认为有希望的东西。和page.Request.Form是空的。
我是否应该查看会话状态,尝试使用客户端操作或其他方法“发送”ID(也许是一种偷偷摸摸的方式来查看我缺少的视图状态)?
感谢任何想法!!!
答案 0 :(得分:2)
即使您的表单尚未重建,也可以从Request []集合中获取控件的提交值。
您应该只需使用以下内容在Init()期间获取所选值:
string value = Request["myDropDownID"];