0

複数のコントロール要素を含む「複雑な」ユーザーコントロールを利用したいと考えています。これは、リストで再利用する同じコントロールであり、既に PlaceHolder コントロールを持っています。

LoadControl(path to .ascx) を使用してコントロールを追加できます- 問題ありません。

カスタム プロパティを使用して、埋め込まれたラベルにも get/set アクセスできるので、各コントロールを完全に初期化できます。

しかし、LinkBut​​tons を追加すると、トラブルや問題が発生します。

ボタンをクリックすると、コントロールをレンダリングするページの「送信」が行われます。しかし、コントロール自体のボタン イベントが発生していないようです (または、少なくとも親ページの PageLoad が最初に発生しているように見えますか?)ボタン。

ここでどうして間違っているのですか?

URL に ID を含む「ハードコードされた A HREF」のラベルを使用して「偽のボタン」を作成しましたが、キャッチする必要があるイベントと、ボタンをどこで、またはどのように初期化するかを知りたいのですが、これらのユーザーコントロールに「デフォルトのASP.NET」コントロールを使用できるようにしたいので(パッチワークコーディングが多すぎないことを願っています)...

4

1 に答える 1

1

イベントが「失われる」唯一の理由は、ポストバック後にASP.Netがイベントをコントロールに関連付けることができるような方法でコントロールが再作成されていないためです。これは、IDプロパティを使用して行われます。

言い換えれば、あなたは3つの間違ったことの1つをしているということです:

1)ポストバック後のInitでの作成フェーズでは、リンクボタンのIDを異なる方法で割り当てています。

2)コードを使用して動的にリンクボタンを作成していますが、ページライフサイクルの初期化フェーズの後に作成しているため、コントロールはViewStateに参加しません。

3)すべてのポストバックのリンクボタンを含む親コントロールのデータソースを再バインドしています。if (!IsPostBack)毎回再バインドしないようにするために使用します。

残念ながら、あなたのコードを見ずに、それ以上に具体的なことを言うことはできません。

于 2009-05-21T02:14:54.837 に答える