Imagebutton onclick在updatepanel中不起作用,我该如何使其工作?

时间:2012-02-10 20:47:12

标签: c# asp.net updatepanel imagebutton

 <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" ChildrenAsTriggers="true"   
 runat="server">
  <ContentTemplate> 
     <asp:ImageButton ID="imagebutton1" runat="server" ImageUrl="~/image.jpg" Width="125" 
     Height="125"  onclick="imagebutton1_Click" />
     <asp:Timer ID="timer1" runat="server" Interval="10000" ontick="timer1_Tick" />
     <asp:Label ID="label1" Visible="false" runat="server" Text="" />
  </ContentTemplate>
</asp:UpdatePanel>

如果我不使用更新面板,则整个页面会刷新。

protected void imagebutton1_Click(object sender, ImageClickEventArgs e){
    string link = label1.Text;
    Page.ClientScript.RegisterStartupScript(this.GetType(), "OPEN", "window.open(" + link +   
    ",'mywindow','width=200,height=200,');", true);
}

这是计时器处理程序

中的变量“link”
Random r = new Random();

if (datatable1.Rows.Count > 0)
{
    int randomnumber = r.Next(0, i);
    DataRow datarow1= datatable1.Rows[randomnumber ];
    imagebutton1.ImageUrl = (String)datarow1["image"];
    imagebutton1.DataBind();
    label1.Text = (String)datarow1["Link"];
}

3 个答案:

答案 0 :(得分:2)

很难说因为你没有真正提出问题,但如果你想在UpdatePanel刷新时运行一段客户端代码,请使用客户端pageLoad() method

此外,您正在使用服务器端事件来执行客户端操作。改为使用OnClientClick处理程序:

<asp:ImageButton ID="imagebutton1" runat="server" ImageUrl="~/image.jpg" Width="125" 
    Height="125"  OnClienClick="return openPopUp(this.href);" />

function openPopUp(link)
{
   window.open(this.href,'mywindow','width=200,height=200,');
   return false;
}

答案 1 :(得分:2)

我必须在updatepanel中添加如下所示的回发触发器,以使其正常工作。

<Triggers>
<asp:PostBackTrigger  ControlID="ImageButton"/>
</Triggers>

答案 2 :(得分:0)

尝试更改为UpdateMode="Always"