<asp:UpdatePanel ID="UpdatePanel1" runat="server">
     <ContentTemplate>
        ...
        <asp:DataList ID="DataList1" runat="server">
               <ItemTemplate>                   <asp:ImageButton ID="imgBooking" ImageUrl="~/Images/Web/btnBooking.gif" runat="server" onclick="imgBooking_Click" />                </ItemTemplate>
         </asp:DataList>
         ...
    </ContentTemplate>
</asp:UpdatePanel>以上代码为什么点击ImageButton没反应,不会执行onclick事件,要添加
    <Triggers>
        <asp:PostBackTrigger ControlID="DataList1" />
    </Triggers>
这个才行,搞不明白,但加了这个之后又不能起到局布刷新了,整个页面都刷新,又达不到我想要的效果。请高手指点指点。

解决方案 »

  1.   

    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID="ImageButton1" EventName="Click" />
     </Triggers>没指名ImageButton1也
    没有这个触发事件EventName="Click" 
      

  2.   

    这样不行,因为ImageButton不止一个,是根据DataList的项变化的,所以ControlID无法指定ImageButton。
      

  3.   

    不用加啊。默认的是UpdatePanel 里面的控件都触发局部刷新呢
      

  4.   

    ScriptManager1这个你都未用~!!!
      

  5.   

    前面放《ScriptManager》《/ScriptManager》
      

  6.   

    你打算用DataList1去刷新DataList1里面的内容???
      

  7.   

    ScriptManager1 肯定是有的,我只是省略了没贴出来不加TriggersImageButton的点击事件不执行呀,这是为什么?
      

  8.   

    再说得详细点,我一个页面上是有两个UpdatePanel,一个是产品列表,一个是购物车,在产品列表中点击“放入购物车”按钮时,在Click事件中向数据库插入一条数据,然后更新购物车的UpdatePanel;现在就是按钮的点击事件不执行。
      

  9.   


    不明白为什么要写这样写在DataList的ItemCommand事件中给ImageButton设置CommandName和CommandArgument。。
      

  10.   

    大哥,用CommandName还是一样不行呀,前台改成了
    <asp:DataList ID="DataList1" runat="server" Width="100%" DataKeyField="cate_id" RepeatDirection="Horizontal" RepeatColumns="4" onitemdatabound="DataList1_ItemDataBound" onitemcommand="DataList1_ItemCommand">
    <ItemTemplate>
        <asp:ImageButton ID="imgBooking" ImageUrl="~/Images/Web/btnBooking.gif" runat="server" CommandName="Booking" />
    </ItemTemplate>后台:
            protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
            {
                Response.Write("xxxxxx");   // 这句都不执行。
                if (e.CommandName == "Booking")
                {
                     ......
                }
            }
    这样还是不行,点了没任何反应,关键问题还是在UpdatePanel上。