我有兩個數據綁定的下拉列表:更新數據綁定下拉列表控件時,另一個數據綁定的下拉列表改變
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();
}
然而,當頁面被重新發布並且通過單擊Submit按鈕再次調用DataBind,在ddlSelectProgram中選擇的值沒有被傳入。Submit按鈕的click事件僅僅是調用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改變?
我實際上已經做到了這一點,它不是最終的解決方案,但它是它的一部分。我需要將控件綁定兩次,因爲它需要在頁面加載以及爲ddlSelectProgram觸發SelectedIndexChanged事件時完成。因此,除了簡單地綁定事件,我首先必須將DataSource設置爲null,然後重新分配DataSource並最終調用Bind。 – Darren 2012-04-12 16:59:08