内に存在するユーザーコントロールから親ページ内のメソッドを呼び出すと、私はこの問題を解決しようとする他の質問の数を踏襲したが、彼らは私の場合には適用されていないようです。 This is an example。私の場合はリピータ制御
は、ユーザーコントロールのインスタンスは、リピータ内で複数回ロードされていると私は、これは私が持っている問題とは何かを持って疑っています。
私は、このメソッドを使用してユーザーコントロールの各インスタンスにイベントを添付しています。私の後ろにユーザーコントロールコード内
protected void rptPosts_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataRowView MyRow = (DataRowView)e.Item.DataItem;
Post MyPost = (Post)e.Item.FindControl("Post");
MyPost.UserControlButtonClicked += new EventHandler(MyPost_UserControlButtonClicked);
MyPost.LoadPost(MyRow);
}
}
private void MyPost_UserControlButtonClicked(object sender, EventArgs e)
{
// reload repeater items
}
このコード置く:
:私はこれを入れてpublic event EventHandler UserControlButtonClicked;
private void OnUserControlButtonClick()
{
if (UserControlButtonClicked != null)
{
UserControlButtonClicked(this, EventArgs.Empty);
}
}
そして、ユーザーコントロール内のボタンで(つまりは、ページメソッドをトリガーすることになっているが)
protected void lnkDelete_Click(object sender, EventArgs e)
{
// Code to delete record //
OnUserControlButtonClick();
}
問題はif (UserControlButtonClicked != null)
は常にfalseを返すように思われることであると考えられるので、UserControlButtonClicked(this, EventArgs.Empty);
が実行されることはありません。
それは動作します:あなたが
リファレンスを望むものはどのではありません!迅速な返信をありがとう! – Osprey
@Osprey:問題ありません。喜んで助ける – Arion