代码放在
if(!Page.IsPostBack)
{
   //放这里面
}

解决方案 »

  1.   

    访问我的博客 程序员日记 http://www.ideaext.com
      

  2.   


    是asp。net的,应改是这个原因!
      

  3.   

    for那段我是放在!IsPostBack里面的,很奇怪啊
      

  4.   

    public partial class GroupSubmit : System.Web.UI.Page
    {
        DataBase db = new DataBase();
        static int numOfUsers;
        static string[] userId;
        static DropDownList[,] ddl;
        static string table;
        string gid = "1";    protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                db.Open();            //填充实验选择菜单
                string selectProject = "select Pno,Pname from Project";
                SqlDataReader projectReader = db.SelectReader(selectProject);
                while (projectReader.Read())
                {
                    SelectProject.Items.Add(new ListItem("实验" + projectReader[0] + "   " + projectReader[1], projectReader[0].ToString()));
                }
                projectReader.Close();            //读取小组人数
                string rNumOfUsers = "select count(*) from GroupMember where Gno='" + gid + "'";
                numOfUsers = Convert.ToInt32(db.SelectResult(rNumOfUsers));            //读取小组成员学号
                string rUserId = "select userId from GroupMember where Gno='" + gid + "'";
                SqlDataReader useridReader = db.SelectReader(rUserId);
                userId = new string[numOfUsers];
                for (int i = 0; i < numOfUsers; i++)
                {
                    useridReader.Read();
                    userId[i] = useridReader[0].ToString();
                }
                useridReader.Close();
                db.Close();            ddl = new DropDownList[numOfUsers, numOfUsers];
                for (int i = 0; i < numOfUsers; i++)
                {
                    for (int j = i + 1; j < numOfUsers; j++)
                    {
                        ddl[i,j] = new DropDownList();                    ddl[i,j].Items.Add(new ListItem(" 次要 ", "0.25"));
                        ddl[i,j].Items.Add(new ListItem("较次要", "0.5"));
                        ddl[i,j].Items.Add(new ListItem(" 相当 ", "1"));
                        ddl[i,j].Items.Add(new ListItem("较重要", "2"));
                        ddl[i,j].Items.Add(new ListItem(" 重要 ", "4"));
                    }
                }            DrawTable();
                //Consistency();
            }
            
            
            //db.Close();
        }    protected void DrawTable()
        {
            string isCommited="";        switch (SelectPart.Text)
            {
                case "Coding":
                    table = "User_Project_Coding";
                    isCommited = "select CodingCmmt from Group_Project_Mark where Gno='" + gid + "' and Pno='" + SelectProject.SelectedValue + "'";
                    break;
                case "Testing":
                    table = "User_Project_Testing";
                    isCommited = "select TestingCmmt from Group_Project_Mark where Gno='" + gid + "' and Pno='" + SelectProject.SelectedValue + "'";
                    break;
                case "Report":
                    table = "User_Project_Report";
                    isCommited = "select ReportCmmt from Group_Project_Mark where Gno='" + gid + "' and Pno='" + SelectProject.SelectedValue + "'";
                    break;
            }
            db.Open();
            int cmmtValue = Convert.ToInt32(db.SelectResult(isCommited));        if (cmmtValue == 0)
            {
                stat.Text = "状态:尚未提交";
                Button1.Enabled = true;
            }
            else if (cmmtValue == 1)
            {
                stat.Text = "状态:已提交,可修改";
                Button1.Enabled = true;
            }
            else if (cmmtValue == 2)
            {
                stat.Text = "状态:已提交,不可修改";
                Button1.Enabled = false;
            }        //第一行
            TableRow firstRow = new TableRow();
            MatrixTable.Rows.Add(firstRow);
            //第一行第一个单元格
            TableCell firstRowFirstCell = new TableCell();
            firstRow.Cells.Add(firstRowFirstCell);
            
            for (int cellCtr = 0; cellCtr < numOfUsers; cellCtr++)
            {//第一行其他单元格
                TableCell firstRowOtherCell = new TableCell();
                firstRowOtherCell.Text = userId[cellCtr];
                firstRow.Cells.Add(firstRowOtherCell);
            }        
            for (int rowCtr = 0; rowCtr < numOfUsers; rowCtr++)
            {//其他几行
                TableRow otherRow = new TableRow();
                MatrixTable.Rows.Add(otherRow);            TableCell otherRowFirstCell = new TableCell();
                otherRowFirstCell.Text=userId[rowCtr];
                otherRow.Cells.Add(otherRowFirstCell);            for (int cellCtr = 0; cellCtr < numOfUsers; cellCtr++)
                {
                    TableCell otherRowOtherCell = new TableCell();
                    if(cellCtr>rowCtr)
                    {                    if (cmmtValue == 1)
                        {//已提交,教师未确认的情况
                            string rtnResult = "select result from " + table + " where userIdA='" + userId[rowCtr] + "' and userIdB='" + userId[cellCtr] + "'";
                            double rtn = Convert.ToDouble(db.SelectResult(rtnResult));                        if (rtn == 0.25)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "0.25";                        }
                            else if (rtn == 0.5)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "0.5";
                            }
                            else if (rtn == 1)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "1";
                            }
                            else if (rtn == 2)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "2";
                            }
                            else if (rtn == 4)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "4";
                            }
                        }
                        else if (cmmtValue == 2)
                        {//已提交,教师已确认的情况
                            string rtnResult = "select result from " + table + " where userIdA='" + userId[rowCtr] + "' and userIdB='" + userId[cellCtr] + "'";
                            double rtn = Convert.ToDouble(db.SelectResult(rtnResult));                        if (rtn == 0.25)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "0.25";
                            }
                            else if (rtn == 0.5)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "0.5";
                            }
                            else if (rtn == 1)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "1";
                            }
                            else if (rtn == 2)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "2";
                            }
                            else if (rtn == 4)
                            {
                                ddl[rowCtr, cellCtr].SelectedValue = "4";
                            }
                            MatrixTable.Enabled = false;
                        }                    otherRowOtherCell.Controls.Add(ddl[rowCtr, cellCtr]);   //将创建的DropDownList增加到单元格内
                    }
                    otherRow.Cells.Add(otherRowOtherCell);
                }
            }
            db.Close();
        }
    .....
    }
      

  5.   

    DrawTable(); 
    把这句搬到!IsPostBack外面貌似就可以了,不过为什么啊,谁能告诉我
      

  6.   

    把DropDownList的AutoPostBack的值改为True