簡體   English   中英

在ASP.NET中創建動態下拉列表后,回發時無法存儲信息

[英]Not able to store information while postback after creating dynamic dropdown in ASP.NET

這是我的代碼

在按鈕2單擊事件之后,它正在表行中創建下拉列表,但是當我嘗試按按鈕1單擊事件保存時,它只是消失了。 我對此沒有任何解決方案。 我用過查找控件視圖狀態等,但沒有幫助。

我想在button_1單擊事件開始后存儲下拉列表的選定值。

public partial class StudentClassSectionMapping : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                ClassCode.Enabled = false;

        }
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        UpdateModalShowFlag.Value = "true";
        Check.Value = "true";
        CreateTableRows();
    }

    private void CreateTableRows()
    {

        long h = long.Parse(LinkButtonIdCarrier.Value);
        List<StudentsClassSectionMapping.StudentsClassSectionMappingForm> allStudentsInClass = StudentsClassSectionMapping.GetStudentsinClass(h);
        ClassMaster.ClassMasterForm classCode = Schoolclasses.GetInfo(h);
        ClassCode.Text = classCode.cCode;
        List<StudentsClassSectionMapping.StudentsClassSectionMappingForm> allSectionsInClass = StudentsClassSectionMapping.GetSectionsinClass(h);
        foreach (StudentsClassSectionMapping.StudentsClassSectionMappingForm studentList in allStudentsInClass)
        {
            TableRow row = new TableRow();
            TableCell cell1 = new TableCell();
            TableCell cell2 = new TableCell();
            TableCell cell3 = new TableCell();
            DropDownList t = new DropDownList();
            t.Items.Add("No Section");
            foreach (StudentsClassSectionMapping.StudentsClassSectionMappingForm sectionList in allSectionsInClass)
            {
                t.Items.Add(sectionList.ssSection);
                t.Items[t.Items.Count - 1].Value = sectionList.ssSectionID.ToString();
            }
            t.Attributes.Add("class", "form-control");

            t.ID = studentList.ssStudentId.ToString();
            cell1.Text = studentList.ssName;
            cell2.Text = studentList.ssRegistrationNumber;
            cell3.Controls.Add(t);
            row.Cells.Add(cell1);
            row.Cells.Add(cell2);
            row.Cells.Add(cell3);
            Table1.Rows.Add(row);
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        CreateTableRows();
        long h = long.Parse(LinkButtonIdCarrier.Value);
        List<StudentsClassSectionMapping.StudentsClassSectionMappingForm> allStudentsInClass = StudentsClassSectionMapping.GetStudentsinClass(h);
        foreach (StudentsClassSectionMapping.StudentsClassSectionMappingForm studentList in allStudentsInClass)
        {

            DropDownList d = Table1.FindControl(studentList.ssStudentId.ToString()) as DropDownList;
            if (d != null)
            {


                if (d.SelectedIndex != 0)
                {
                    StudentsClassSectionMapping.StudentsClassSectionMappingForm studentSectionMapping = new StudentsClassSectionMapping.StudentsClassSectionMappingForm();
                    studentSectionMapping.ssClassId = h;
                    studentSectionMapping.ssStudentId = studentList.ssStudentId;
                    studentSectionMapping.ssStudentId = long.Parse(d.SelectedItem.Value);
                    StudentsClassSectionMapping.addSectionStudentMapping(studentSectionMapping);
                }
                else 
                {
                    StudentsClassSectionMapping.StudentsClassSectionMappingForm studentSectionMapping = new StudentsClassSectionMapping.StudentsClassSectionMappingForm();
                    studentSectionMapping.ssClassId = h;
                    studentSectionMapping.ssStudentId = 0;
                    studentSectionMapping.ssStudentId = 0;
                    StudentsClassSectionMapping.addSectionStudentMapping(studentSectionMapping);
                }
            }
        }
    }

它會消失/消失,因為您是在頁面上動態添加的。 如果要恢復原樣或要保留動態創建的控件,則需要重新創建並動態添加。

這是一個很好的例子,該如何做: 如何在ASP.NET中動態創建控件並從中檢索值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM