OnItemCommand和OnItemDataBound的序列

时间:2016-12-01 03:59:16

标签: c# asp.net

我正在处理<asp:Repeater>这样的代码

<asp:Repeater ID="rptMyList" runat="server" OnItemDataBound="rptMyList_OnItemDataBound"  OnItemCommand="rptMyList_OnItemCommand" >

<asp:LinkButton>内还有<asp:Repeater>

<asp:LinkButton ID="lbClick" runat="server" Text="CLICK" CommandName="click"  CommandArgument='<%# Eval("VAL") %>' CausesValidation="false" ></asp:LinkButton>

当我点击LinkButton时,我希望rptMyList_OnItemCommand会运行,在后端设置视图变量,并使用OnItemDataBound处理更新后的变量。

但是,我发现它在调试模式rptMyList_OnItemDataBound之前实际执行rptMyList_OnItemCommand

这是正确的顺序以及我可以在rptMyList_OnItemCommand之前执行rptMyList_OnItemDataBound的任何方式吗?

1 个答案:

答案 0 :(得分:1)

在Repeater控件中的项目受数据限制但在页面上呈现之前,会发生OnItemDataBound事件。

在Repeater控件中单击按钮时发生OnItemCommand

所以答案是否定的。在呈现项目之前,您无法单击按钮。

如果它是已经呈现的页面,请使用Page.IsPostBack属性来处理这种情况。