Кнопка onclick не работает в панели обновления. Как я могу заставить ее работать? - PullRequest
0 голосов
/ 11 февраля 2012
 <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);
}

Это переменная "ссылка" здесь в обработчике таймера

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 ]

2 голосов
/ 28 марта 2012

Мне нужно было просто добавить триггеры обратной передачи, как показано ниже в панели обновлений, чтобы она заработала.

<Triggers>
<asp:PostBackTrigger  ControlID="ImageButton"/>
</Triggers>
2 голосов
/ 11 февраля 2012

Сложно сказать, так как вы не включили вопрос, но если вы хотите, чтобы часть кода на стороне клиента выполнялась при обновлении UpdatePanel, используйте метод * * на стороне клиента *.1004 *

Кроме того, вы используете событие на стороне сервера для выполнения операции на стороне клиента.Вместо этого используйте обработчик 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;
}
0 голосов
/ 11 февраля 2012

Попробуйте изменить на UpdateMode="Always"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...