2012-02-10 3 views
-2
<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> 

Если я не использую панель обновления, вся страница обновляется.Imagebutton onclick не работает в 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"]; 
} 
+0

Не могли бы вы поместить некоторый код, часть вашего метода 'Page_Load' и настройки параметров ImageButton (возможно, из исходного файла дизайнера)? – twilson

+2

Это ваш 12-й вопрос, тем временем вы должны были заметить, что вопрос должен содержать более половины предложения и «не работает». Укажите точные ошибки/неправильное поведение и соответствующий код. –

+0

@TimSchmelter не вызывает событие onclick в коде. – Seesharp

ответ

2

я должен был просто добавить постбэк триггеров, как показано ниже в UpdatePanel, чтобы заставить его работать.

<Triggers> 
<asp:PostBackTrigger ControlID="ImageButton"/> 
</Triggers> 
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; 
} 
+0

Я хотел бы вызвать imagebutton1_Click, когда я нажимаю на кнопку с изображением, но не стреляет – Seesharp

+0

Мне нужно это на сервере, так как мне нужно получить изображения и ссылки из базы данных, а onclientclick все еще не работает в обновленной панели. – Seesharp

0

Try изменения в UpdateMode="Always"

Смежные вопросы