确定oninit事件中动态列创建的DDL值

时间:2009-05-06 00:34:12

标签: c# asp.net dynamic viewstate

问候,希望这个复杂问题有一个简单的解决方案。请纠正我在此过程中的任何误解。  前段时间我写了一个具有动态列功能的GrivView。这些列将添加到OnInit页面事件中,以便在应用视图状态之前添加它们。它们在页面的这一部分中的每个帖子上重新应用,以便在应用视图状态时,维护用户已做出但未提交到数据库的更改。如果您不希望视图状态控制树不同步并将所有内容都搞砸,也需要它。

我目前的问题是,我现在的任务是根据下拉列表执行基本相同的事情,其中​​列将不同(如果ddl发生更改,我将重新创建GridView,并且用户将失去所有工作警告)。如何获取OnInit事件中下拉列表中选择的ID?我的理解是,当用户在客户端更改ddl的值时,将触发JavaScript“__doPostBack”调用。然后页面请求被发送到服务器,但是当事件处理程序中出现新值时,我已经超过了我需要添加列的点。

当人们试图确定什么控件导致回发但是代码依赖于page.Request.Params.Get(“__ EVENTTARGET”)时,我看到了我认为有希望的东西。和page.Request.Form是空的。

我是否应该查看会话状态,尝试使用客户端操作或其他方法“发送”ID(也许是一种偷偷摸摸的方式来查看我缺少的视图状态)?

感谢任何想法!!!

1 个答案:

答案 0 :(得分:2)

即使您的表单尚未重建,也可以从Request []集合中获取控件的提交值。

您应该只需使用以下内容在Init()期间获取所选值:

string value = Request["myDropDownID"];