2012-02-10 4 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> 

更新パネルを使用しないと、ページ全体が更新されます。イメージボタン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

に変更してみてください。

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がまだupdatepanel内で動作しないため、サーバーに必要です。 – Seesharp

0

は、私はちょうど、以下のようにポストバックがそれを動作させるためにUpdatePanelの中​​にトリガーを追加する必要がありましたUpdateMode="Always"

関連する問題