私は VB.NET と JQM でサイトに取り組んできましたが、すべて順調に進んでいます。
現在、次のようなタグを使用して標準の画像ボタンを含めようとしています。
<asp:ImageButton ID="btnYear" runat="server" ImageUrl="~/images/buttons/year_btn.gif" />
VB コード ビハインド ファイルには、次のようなクリック イベントがあります。
Private Sub btnYear_Click(sender As Object, e As System.Web.UI.ImageClickEventArgs) Handles btnYear.Click
Session("TimeFrame") = "YEAR"
*do other code*
End Sub
画像ボタンをクリックしてコードをトレースすると、コード ビハインド ファイル内のページ イベント (ページの読み込み、ページのプリレンダーなど) のすべてのコードが発生しますが、画像ボタンのクリック イベントは発生しません。
イメージ ボタンを標準の asp:Button に置き換えて、すべて同じことを行うと、コード ビハインドのクリック イベントが問題なく発生します。JQM ページ内で ASP ImageButton を使用し、VB コード ビハインド ファイルでクリック イベントを保持することはできませんか?
編集 アンドリーア氏の反応に感謝しますが、これらの ImageButtons に関しても、私のページに新しいシナリオ (問題) が浮かび上がります。
ユーザー コントロール内に ImageButton コントロールが含まれています。私のページは、複数の要素を含む単一の ASPX ファイルで
<div data-role="page">
あり、それぞれに独自の ID ("page1"、"page2"、"page3" など) があり、JQM のマルチページ機能の標準的な使用法に従います。各「ページ」セクションには、イメージ ボタンを含むユーザー コントロールのインスタンスが含まれます。これはすべてうまく機能しますが、1 つの問題があります。ユーザーがデフォルトの「page1」から別の「ページ」に移動し、画像ボタンの 1 つをクリックすると、コードが起動し、ページがリロードされ、ユーザーがデフォルトに戻ります。ページ - 「ページ 1」。
これは良くありません - ユーザーがボタンを起動してページをリロードし、表示されている「ページ」要素にとどまることができるようにする方法が必要でした - JQMはURLのハッシュタグを使用してこれらの複数のページを実現します - だから私は行を見つけましたページの読み込みイベントに追加したコードは次のとおりです。
`Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handle Me.Load
Me.Form.Attributes("onsubmit") = "this.action+=top.location.hash;"
End Sub`
私はもともとユーザーコントロールでラジオボタンを使用していました.JQMは「スキニング」していたのでボタンとして表示されていました.Page_Loadイベントのこの1行で、ユーザーは任意の「ページ」要素とコードビハインドのラジオボタンをクリックできました.ラジオボタンが起動し、ユーザーがクリックしたのと同じ「ページ」要素でページがリロードされます-ラジオボタンをイメージボタンに置き換えるのではなく-そのコード行をPage_Loadイベントに追加すると、ImageButtonコントロール完全に機能しなくなります - コードビハインドでもクリックでコードをクリックしても発火しません - また、Page_Load や Page_PreRender などのページレベルのイベントも発生しません - それらをクリックしてもまったく何も起こりません..
これについて何か考えはありますか?