2009-05-25 9 views
0

私は連絡先のテーブルを動的に作成するページを持っています。連絡先に電子メールがある場合は、クリックイベントで画像ボタンも作成します。完全に動作する他のページでも同様の機能があります。そして、私は何の問題もなく、前にこれを使用: ここ突然、動的に作成された画像ボタンのクリックイベントが発生しません。

protected void CreateContactsList(IQueryable<AA_BranschFinder.Login.vyWebKontaktpersoner> lContacts) // Creates a table in the aspx from an IQueryable List 
     { 
      if (1 == 1) 
      { 
       htmlTblContactsContent.Rows.Clear(); 

       foreach (var p in lContacts) 
       { 
        HtmlTableRow tr = new HtmlTableRow(); 
        HtmlTableCell tdName = new HtmlTableCell(); 
        HtmlTableCell tdCompanyName = new HtmlTableCell(); 
        HtmlTableCell tdEmailAdress = new HtmlTableCell(); 
        tdName.InnerHtml = p.strFnamn + " " + p.strEnamn; 
        tdCompanyName.InnerHtml = p.strNamn; 

        //Displays an image if the contacts has an email 
        if (p.strEpost != null) 
        { 
         ImageButton imgEmail = new ImageButton(); 
         imgEmail.CommandArgument = p.intKundID.ToString(); 
         imgEmail.ImageUrl = "images/symbol_letter.gif"; 
         imgEmail.CssClass = "letter"; 
         imgEmail.Click +=new ImageClickEventHandler(imgEmail_Click); 
         tdEmailAdress.Controls.Add(imgEmail); 
        } 
        tr.Cells.Add(tdCompanyName); 
        tr.Cells.Add(tdEmailAdress); 
        tr.Cells.Add(tdName); 
        htmlTblContactsContent.Rows.Add(tr); 
       } 
      } 

     } 

     void imgEmail_Click(object sender, ImageClickEventArgs e) 
     { 

ブレークポイント)(新しいNotImplementedExceptionを投げます。 }

ページがJavaポップアップウィンドウ内に存在しています。しかし、私はよく働く同様のイベント作成で番号を呼び出しています。しかし彼らはLinkbuttonsです。

答えて

0

ここでCreateメソッドを呼び出していますか?他のイベントハンドラが実行される前に、それを行う必要があります。理想的には、Page.Init。それ以外の場合、ページにポストバックされたデータには、まだ存在しないコントロールのイベント発生が示されます。

ImageButtonにIDを指定することも忘れないでください。デバッグがずっと簡単になります。

imgEmail.ID = String.Format("EmailImageButton_{0}", p.intKundID); 

代替ソリューションは、Requestオブジェクトで__eventtargetと__eventargumentパラメータを見て、そこにクリックされたボタンを確認することです。

0

すべてのポストバックで動的コントロールを作成する必要があります。また、imgEmail_Clickイベントハンドラのコードをチェックしてください。

throw new Exception("The method or operation is not implemented."); 
0

場合は - 私はIMAGEBUTTONをmisstakingない種類提出されて - あなたは、.NET IDEのAltキー+ Shiftキー+ F10の方法を使用してイベントハンドラメソッドを作成している場合は、この行を削除していない可能性がありますlinkbuttonはjavascriptのあるaタグですが、たぶんあなたのimagebuttonのクリックを変更する(つまり、useubmitbehaviourをfalseに設定する)ことで問題は解決します。

0

イベントハンドラがポストバックに追加されていることを確認してください。最初のページの読み込み時に追加すると、イベントは処理されません! (ちょうど遭遇し、自分自身でこの問題を解決しました)

関連する問題