1

グリッドビューの行を編集するときに、c#を介してカレンダーコントロールにアクセスしたいと思います。ただし、C#ビハインドを介してこれにアクセスする方法がわかりません。

私は次のことをしたいと思います:

cal_SelectionChanged(object sender, EventArgs e)
{
date = cal.SelectedDate

blah blah...
}

ただし、コントロールはグリッドビュー編集テンプレートにあるため、カレンダーが通常のasp.netページの単なる要素である場合と比較して、C#にアクセスする方法を見つけることができません。

ありがとう

4

1 に答える 1

1

Templateご存知のように、ページ/ユーザーコントロール/マスターページに直接配置されたコントロールのように、ベースのコントロール(など)内のコントロール<asp:Repeaters>に直接アクセスすることはできません。コントロール内の特定のアイテムで「FindControl」を使用してそれを見つけることは可能ですが、もっと簡単な方法があるはずです...

SelectionChangedこの場合、カレンダーコントロールのイベントハンドラーをコードビハインドの関数に設定できるはずです。(これは、組み込みのカレンダーコントロールを使用していることを前提としています)...

<asp:Calendar runat="server" OnSelectionChanged="cal_SelectionChanged"> ... </asp:Calendar>

このようなイベントが呼び出されると、イベントの原因となったオブジェクト(この場合はカレンダーコントロール)がsenderパラメーターを介して関数に渡されます。

これは、どのカレンダーがクリックされたかを調べる代わりに、これを行うことができることを意味します...

cal_SelectionChanged(object sender, EventArgs e)
{
  Calendar cal = (Calendar)sender;
  date = cal.SelectedDate;
  blah blah...
}
于 2012-07-31T16:37:09.300 に答える