代码之家  ›  专栏  ›  技术社区  ›  DiningPhilanderer

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

  •  1
  • DiningPhilanderer  · 技术社区  · 16 年前

    大家好,希望这个复杂问题有一个简单的解决方案。请纠正我一路上的任何误解。 不久前,我写了一个具有动态列功能的GrivView。列将添加到OnInit页面事件中,以便在应用viewstate之前添加。它们将重新应用于页面此部分中的每篇帖子,以便在应用viewstate时,维护用户所做的且未提交到数据库的更改。如果您不想让viewstate控件树失去同步并破坏所有内容,则也需要使用此选项。

    我目前的问题是,我现在的任务基本上是做同样的事情,根据下拉列表,列将不同(如果ddl发生变化,我将重新创建GridView,用户将丢失所有工作,并发出警告)。如何获取在OnInit事件的下拉列表中选择的ID?我的理解是,当用户在客户端更改ddl的值时,会触发JavaScript uu doPostBack调用。页面请求随后被发送到服务器,但当新值出现在事件处理程序中时,我已经超过了需要添加列的位置。

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

    谢谢你的建议!!!

    1 回复  |  直到 16 年前
        1
  •  2
  •   womp    16 年前

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

    您只需在Init()期间使用以下方法获取所选值:

    string value = Request["myDropDownID"];