2つのデータバインドされたドロップダウンリストがあります。
if (!IsPostBack)
{
ddlSelectProgram.DataSource = new PEIATableAdapters.programTableAdapter().GetData();
ddlSelectProgram.DataBind();
ddlSelectSurveyType.DataSource = new PEIATableAdapters.ParticpantSurveyFormIDsTableAdapter().GetFormIDsByProgramID(ProgramID);
ddlSelectSurveyType.DataBind();
BindData();
}
ページが読み込まれると、BindDataの呼び出しでgrdResultsが正しく入力されます。
private void BindData()
{
PEIATableAdapters.ParticipantSurveysTableAdapter adapter = new PEIATableAdapters.ParticipantSurveysTableAdapter();
grdResults.DataSource = adapter.GetDataByFormID(FormID);
grdResults.DataBind();
}
ただし、ページがポストバックされ、[送信]ボタンをクリックしてDataBindが再度呼び出された場合、ddlSelectProgramで選択された値は渡されません。[送信]ボタンのクリックイベントは単にDatabind()を呼び出しており、イベントが発生しています。
ProgramIDとFormIDのプロパティは次のとおりです。
protected int ProgramID
{
get
{
return Convert.ToInt32(ddlSelectProgram.SelectedValue);
}
set
{
ddlSelectProgram.SelectedValue = value.ToString();
}
}
protected int FormID
{
get
{
return Convert.ToInt32(ddlSelectSurveyType.SelectedValue);
}
set
{
ddlSelectSurveyType.SelectedValue = value.ToString();
}
}
ddl_SelectProgramが変更されたときにddlSelectSurveyTypeが変更されるように、2つのコントロールを結合するにはどうすればよいですか?