私は何かが欠けていると思います。たとえば、次のように Page_Onload + isPostBack + asp:button をイベントのトリガーとして使用して実際の条件が満たされた場合、html div を表示する適切な方法は何ですか?
Page_Load -> 発生したクリック イベント
ページの読み込み - 要素 (この場合、複数のテーブル行に対して動的に生成された文字列) ステータス非表示
クライアントは送信ボタンをクリックします:
要素が表示に切り替えられました。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
nothing yet
}
else
{
suppose to check on client event handle by asp button
}
}
// これがクライアントによって発生したイベントです
protected void imgButSbmt_Click(object sender, ImageClickEventArgs e)
{
initializeReportTable();
}
そして突然、この議論が正しいことを確認しようとしているときに、
「ヒット」していないことがわかりましたimgButSbmt_Click
(デバッグモードでブレークポイントが接続されています)。
最初に...現時点では、これは異常な動作であることに気付くことができました(おそらくすべてのプロジェクトに関連するこの質問を書いている間、これはすべてのイベントで発生しなかったため、ソリューションファイルを次のように削除して解決しました私はこの記事を書いていました)。
だから今、それはうまくいきます。
しかし...今回は(ソリューションはまだ作成されていませんが)、Webサイトの「プロジェクト」をFile-Open-Website
.
ヒットF5
...ブレークポイントは赤い色で正常に動作します..今回は説明マークはありません。ただし、AutoPostBack に設定されているボタンとドロップダウン リストのすべてのイベント
protected void DDL_Month(object sender, EventArgs e)
{
initializeReportTable();
}
発砲していませんでした。を除くすべてのイベントPage_Load
が現在発火しています。もう一度確認すると発火しますが、2回目だけです!
ここで何が起きてるの?
少し前に出くわしたいくつかの読みを思い出しましたが、autoeventwireup をチェックして、それが に設定されていることを確認する必要があると言っていましたtrue
(これがデフォルトだと思います)。
したがって、これらはページ ディレクティブです。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
テーブル内のコントロール DropDownList + imgButton の例を次に示します。
<td>
<asp:DropDownList ID="DDL_Month" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DDL_Month"></asp:DropDownList>
</td>
<td>
<asp:ImageButton ID="imgButSbmt" ImageUrl="images/sendreq.png"
runat="server" Height="25px" OnClick="imgButSbmt_Click"
style="margin-right: 0px; border-width:" />
</td>