我有两个数据绑定下拉列表:
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?
答案 0 :(得分:1)
当页面加载仅填充ddlSelectSurveyType时。然后在更改ddlSelectSurveyType的值时使用autoPostBack和catch事件。然后,在您知道ProgramID被选中后,填充您的数据。
答案 1 :(得分:1)
将属性AutoPostBack =“True”添加到标记中的ddlSelectProgram,并将事件处理程序添加到代码隐藏中的ddlSelectProgram的SelectedIndexChanged事件中。在该事件中绑定ddlSelectSurveyType。