我正在处理<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
的任何方式吗?
答案 0 :(得分:1)
在Repeater控件中的项目受数据限制但在页面上呈现之前,会发生OnItemDataBound事件。
在Repeater控件中单击按钮时发生OnItemCommand。
所以答案是否定的。在呈现项目之前,您无法单击按钮。
如果它是已经呈现的页面,请使用Page.IsPostBack属性来处理这种情况。