更新面板不在那里“OnSelectedIndexChanged”事件,它在转发器内

时间:2013-09-05 10:52:42

标签: asp.net sql-server-2008 updatepanel repeater asprepeater

我已经在页面中放置了一个更新面板并且它正常工作。在那个页面我是 加载转发器并且它也正常工作。但是在转发器里面,我在dropdownList中触发了一个事件" OnSelectedIndexChanged" 。在使用它时,页面正在刷新。似乎更新面板在那里没有工作。

<asp:UpdatePanel ID="update_invest" runat="server" UpdateMode="Always">
  <ContentTemplate>
 <asp:Repeater ID="rptinvest" runat="server" OnItemDataBound="rptactions_ItemDataBound">
   <ItemTemplate>
     <td>
    <asp:DropDownList ID="ddlemployee" runat="server" OnSelectedIndexChanged="ddlEmployee_SelectedIndexChanged"
   AppendDataBoundItems="true" AutoPostBack="True">
   </asp:DropDownList>
   </td>
   </ItemTemplate>
  </asp:Repeater>

   

以上是代码...... !!

谢谢Arshad ..!

1 个答案:

答案 0 :(得分:0)

我认为您需要在更新面板中注册回发触发控件。在您的代码段中,它是ddlemployee。如果它在标记中,你可以这样做:

<Triggers>
 <asp:AsyncPostBackTrigger ControlID="ddlemployee" EventName="OnSelectedIndexChanged" />
 </Triggers>
</asp:UpdatePanel>

但是,下拉控件嵌套在转发器中,您必须从后面的代码中注册它,如:

For Each item As RepeaterItem In rptinvest.Items

 Dim ddlemployee As DropDownList = DirectCast(item.FindControl("ddlemployee"), DropDownList)
 ScriptManager1.RegisterAsyncPostBackControl(ddlemployee)

Next

希望这对你有所帮助。有关更新面板和触发器的详细信息,请访问here