在更改基于下拉列表的字段信息时遇到麻烦

本文关键字:信息 字段 遇到 麻烦 下拉列表 | 更新日期: 2023-09-27 18:01:42

我认为这个问题有一个简单的解决方案,但我已经绞尽脑汁了几天了。我有一个web应用程序,其中动态地从存储过程中获取学生列表。我想查看每个学生的详细信息和随后的班级信息。在Student's Details页面上,有一个下拉列表,其中包含该学生所在的所有课程,当选择一个课程时,应该更新Community Partner字段。

我正在使用SelectedIndexChanged方法,但为了使其工作,我需要将AutoPostBack设置为True,这会导致页面重新加载,因此下拉列表和所选值也要重新加载。我已经尝试了这段代码的几种不同配置,但没有结果。

这是我的ascx文件

<asp:DropDownList ID="StudentCourses" runat="server"></asp:DropDownList>

这是我的asx .cs文件

protected void Page_PreRender(object sender, EventArgs e)
    {
        if (Session["StudentID"] != null)
        {
            int studentId = Convert.ToInt32(Session["StudentID"]);
            Student student = studentRepository.GetStudent(studentId);
            StudentCourses_SelectedIndexChanged(sender, e);
            StudentCommunityPartner.Text = StudentCourses.SelectedItem.Value;
                ...

这里是SelectedIndexChanged方法

protected void StudentCourses_SelectedIndexChanged(object sender, EventArgs e)
    {
        IList<KeyValuePair<Course, CommunityPartner>> courseList = studentRepository.GetStudentCourses(Convert.ToInt32(Session["StudentID"]));
        StudentCourses.DataSource = courseList;
        StudentCourses.DataBind();
        int ctr = 0;
        foreach (KeyValuePair<Course, CommunityPartner> kvp in courseList)
        {
            if (ctr < StudentCourses.Items.Count)
            {
                StudentCourses.Items[ctr].Text = kvp.Key.CourseCode;
                StudentCourses.Items[ctr].Value = kvp.Value.PartnerName;
                ctr++;
            }
            else ctr = 0;
        }
        StudentCommunityPartner.Text = StudentCourses.SelectedItem.Value;
    }

我尝试了几种组合,我不知道如何正确地改变页面上的内容,而不需要每次刷新下拉列表。谢谢你的帮助,非常感谢。

在更改基于下拉列表的字段信息时遇到麻烦

将文本框设置为下拉更改,如下所示:

设置下拉列表值为jQuery文本框

如果你想做更多的事情,从下拉菜单中选择的值应该在post back时保存在viewstate中。你可以试着保存

var Selected = StudentCourses.SelectedValue;

填充下拉列表然后用保存值

设置选定值

StudentCourses。