0

私は何かが欠けていると思います。たとえば、次のように 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>
4

1 に答える 1

0

@JonH によって提案されたように、解決策として、UCB (識別されていないコード動作) が発生している場合は、他のさらにバグのあるシナリオで既に使用する必要がありました...次のようにします

1) プロジェクト Work-folder の新しいホームとして新しいフォルダーを開きます

2) The Buggy プロジェクトからすべてのサブフォルダーをコピーしimagesますjs

3)新しいものを作成する/異常な問題があったwebSiteその他のものapplication

次に、アプリケーションに必要なすべての参照を適用し、それに応じて新しく作成された .cs/vb/aspx にコードをコピーし、既存のアイテム (別のファイルにある他のクラス) を使用します。

これで作業を続行する準備が整いました...

バグはもうあなたの後ろにあるはずです

古いプロジェクトとそれに関連付けられているソリューション ファイルを削除することを忘れないでください。

UCB現象に遭遇した他の新しい開発者の助けになることを願っています.

于 2012-12-04T21:57:05.583 に答える