0

このテーマについて調査しましたが、適切な答えが見つかりませんでした。

私の default.aspx ページには、ツリービューがあります。コードは、次のように default.aspx にあります。

 protected void Page_Load(object sender, EventArgs e)
 {

 }
 protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
 {
      Control ucont;
      if (TreeView1.SelectedNode.Value == "Yeni Dönem")
      {
         ucont = LoadControl("usercontrols/yenidonem.ascx");
         PlaceHolder1.Controls.Add(ucont);
      }
      else
      {
         ucont = LoadControl("usercontrols/tabloktar.ascx");
         PlaceHolder1.Controls.Add(ucont);
      }
 }

ユーザーコントロールを動的にロードします。ユーザーコントロールにはボタンコントロールがあります。動的にロードすると、ユーザーコントロールのボタンクリックを起動できません。どうすればこれを解決できますか? ありがとう。

4

1 に答える 1

0

まず第一に、Page_Loadイベントより後で動的にコントロールを追加することはお勧めしません。他に覚えておくべきことは、ページの読み込みごとに追加しID、ポストバック間で変化しないコントロールに一意の値を割り当てる必要があることです。

この場合、最も簡単な方法は、常に両方のコントロールをページに追加し、Visibilityプロパティを使用して適切なコントロールを表示することです。

それが適切でない場合は、コードをイベントに移動し、別のポストバックに変更する必要があるまで、各ポストバックに適切なコントロールをロードしてみTreeView1_SelectedNodeChangedPage_Loadください。

私はこれをテストしていないので、この回答を使用する際に問題が発生した場合は、コメントでお知らせください。お手伝いします。

于 2013-09-08T18:58:29.090 に答える