1

ASP.NET アプリケーションに UpdatePanel コントロールがあります (実際にはいくつかありますが、それは問題ではありません)。

<asp:UpdatePanel ID="UpdatePanelDetail" runat="server" UpdateMode="Conditional">
<ContentTemplate>
...More code here

パネル内には、次のasp:Tableオブジェクトがあります。

<asp:Table ID="tblGIFs" runat="server"></asp:table>

このテーブルは、codebehind からのいくつかのコードを介してプログラムで生成されます。

TableRow htr = new TableRow();
TableCell htc = new TableCell();
...<snip>
tblGIFs.Rows.Add(htr)

ボタンを追加しようとしているセルの1つ(画像付き)を除いて、それはすべて問題ありません。

htc3.Text = "<input ID=\""+ii.Value+"\" OnClick = \"btnGIFSearch(this)\" type=\"image\" value=\"/Image/Fiu.png\" />";

この画像をクリックすると、onclickは正常に起動しますが、全体UpdatePanelがリフレッシュされます (その結果、 がasp:Table消えます)。

を使用するtype="button"と、完全に正常に動作し、テーブル内のコンテンツを更新したり失ったりしても問題はありません。

コードビハインドからテーブルに触れているすべての場所でブレークポイントを使用してページを実行しましたが、UpdatePanelプログラムによってクリアされる原因となる可能性があるものは他にありません。

これらのタグ/コントロールで同様の動作を見た人はいますか?解決策はありますか? 回避策は明らかにボタンを使用してスタイリングすることですが、正しく動作type=buttonできる場合はそうしません。type=image

4

2 に答える 2

9

入力タイプ「画像」は送信ボタンのようなものです。フォームを送信しているのは、それが彼らの仕事だからです。予期しないポストバックの場合にコード ビハインドがテーブルを再構築していない場合、テーブルは再構築されず、したがって消えます (コントロールを動的に構築するときはいつでもそうする必要があることに注意してください。リクエストごとにそうする必要があります)。 )。ボタンをポストバックしたくない場合は、OnClick ハンドラで false を返してポストをキャンセルします。ボタンをポストバックしたい場合は、別の問題があり、おそらく動的コントロールの使用が間違っていることに関連しています。

于 2012-04-17T04:43:30.813 に答える
0

動的に作成されたコントロールで解決しました。

于 2012-04-30T03:19:41.747 に答える