【问题标题】:Get value of certain Page control in an asp:Repeater获取asp中某些页面控件的值:Repeater
【发布时间】:2013-08-20 22:23:08
【问题描述】:

在我的 asp.net 页面上,我有几个 DropDownLists。 我也有中继器。

在ItemDataBound事件中我想获取这些DropDownLists的值,来改变Repeater中的数据。这些 DropDownLists 的 SelectedValue 为空。 但是在 ItemDataBound 之后,Page_Load 被执行。在那里我可以获得这些 DropDownLists 的值。

有没有办法在ItemDataBound执行时获取值。

谢谢!

菲利普

【问题讨论】:

    标签: asp.net drop-down-menu repeater itemdatabound


    【解决方案1】:

    您需要在 Page.Load 事件中对这些下拉列表进行数据绑定。

    有很多 web 控件在加载生命周期中获取它们的状态或其他详细信息(我很久以前就遇到过这类问题)。

    注意:当我说“状态”时,我指的不是 ViewState。

    为什么不在加载事件之后进行数据绑定?

    【讨论】:

    • 这些下拉列表已经绑定在 page_load 事件中。如果我把'if(!IsPostBack)'放在外面,则在回发后重置所选值。而在Repeater的ItemBound事件中,SelectedValue依然为null。
    • ItemDataBound 是Repeater 的事件,我不认为您可以更改“执行顺序”?
    • 当您在控件中调用 DataBind() 时会调用此事件。
    • 我认为这是问题所在,数据绑定在 page_load 中,但我是 'if (!IsPostBack)',所以如果你更改 ddl,itembound 不会很好地执行,谢谢
    【解决方案2】:

    您能否在页面 PreInit 事件中获取下拉列表的选定值?如果是这样,请将它们存储在视图状态中,并在转发器的项目数据绑定事件期间从视图状态中检索它们。

    如果这不起作用,请尝试将选定的索引更改事件添加到每个下拉列表。当下拉列表更改时,设置一个视图状态变量,您可以在转发器的项目数据绑定事件期间检索该变量。如果在页面加载期间(例如从数据库读取时)设置下拉菜单的值,请使用这些值直接设置适当的视图状态变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-22
      • 2012-08-25
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多