【问题标题】:Determine DDL value for dynamic column creation in oninit event在 oninit 事件中确定动态列创建的 DDL 值
【发布时间】:2010-10-24 01:48:18
【问题描述】:

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

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

当人们试图确定是什么控制导致回发但该代码依赖于 page.Request.Params.Get("__EVENTTARGET"); 时,我看到了一些我认为很有希望的东西。和 page.Request.Form 是空的。

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

感谢您的任何想法!!!

【问题讨论】:

    标签: c# asp.net dynamic viewstate


    【解决方案1】:

    一个控件的提交值可以从 Request[] 集合中获得,即使你的表单看起来还没有被重构。

    您应该能够使用以下方法在 Init() 期间简单地获取所选值:

    string value = Request["myDropDownID"];
    

    【讨论】:

    • 出于某种原因,这只适用于第一次回发。还是比我的+1更好的答案
    猜你喜欢
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多