0

我有两个数据绑定下拉列表:

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?

4

2 回答 2

1

页面加载时仅填充 ddlSelectSurveyType。然后使用 autoPostBack 并在 ddlSelectSurveyType 的值更改时捕获事件。然后在您知道 ProgramID 被选中后填充您的数据。

于 2012-04-12T00:07:58.250 回答
1

在标记中将属性 AutoPostBack="True" 添加到 ddlSelectProgram,并在代码隐藏中将事件处理程序添加到 ddlSelectProgram 的 SelectedIndexChanged 事件。在该事件中绑定 ddlSelectSurveyType。

于 2012-04-12T00:12:52.513 回答