我的问题的关键是:当listbox控件lblCollegeName中的值被选中时能够取得
ViewState["name"]=dr["Cname"].ToString();
ViewState["OrignPosition"] = dr["paixu"].ToString();这两项的值
这句代码该如何写

解决方案 »

  1.   

    不要放在if(!Page.IsPostBack)内,放到外面
      

  2.   

    单独放置if(!IsPostBack)return;
    如果不行的话,你把!去掉试一试
      

  3.   

    不要放在if(!Page.IsPostBack)内,放到外面或者確定的autopostback?
      

  4.   

    Button1_Click函数在 InitializeComponent()里面加入了吗?
      

  5.   

    在你的页面设计器中,是否将button1的事件(就是那个带闪电的按钮)进行定义了?
      

  6.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!Page.IsPostBack)
    {
    lblCollegeName.AutoPostBack = true;
    BindData();
    }
    }private void BindData()

    MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("..\\Data\\Cooperation.mdb")+";";
    string strSQL = "SELECT * FROM university ORDER BY paixu";
    OleDbConnection MyConn =new OleDbConnection(MyConnString);
    OleDbCommand MyComm = new OleDbCommand(strSQL,MyConn);
    MyConn.Open();
    //填充待排序学校名称
    dr = MyComm.ExecuteReader();
    while(dr.Read())
    {
    lblCollegeName.Items.Add( new ListItem(dr["Cname"].ToString(),dr["paixu"].ToString()));
    }

    dr.Close();
    //动态生成排序下拉列表
    MyComm.CommandText = "SELECT * FROM university ORDER BY paixu";
    dr = MyComm.ExecuteReader();
    while(dr.Read())
    {

    ddlReOrder.Items.Add(new ListItem(dr["Cname"].ToString(),dr["paixu"].ToString()));

    }
    MyConn.Close();
    }private void Button1_Click_1(object sender, System.EventArgs e)
    {
    int OrignPosition = Int32.Parse(ViewState["OrignPosition"].ToString()); //记录原始位置
    int InsertPosition = Int32.Parse(ddlReOrder.SelectedItem.Value); //记录插入位置
    int RecordCount; //记录记录总数 MyConnString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+Server.MapPath("..\\Data\\Cooperation.mdb")+";";
    string strSQL = "SELECT COUNT(*) AS co FROM University";
    OleDbConnection MyConn =new OleDbConnection(MyConnString);
    OleDbCommand MyComm = new OleDbCommand(strSQL,MyConn);
    MyConn.Open();
    //计算记录总数
    dr = MyComm.ExecuteReader();
    if(dr.Read())
    {
    RecordCount = Int32.Parse(dr["co"].ToString());
    }
    else
    {
    RecordCount = 0;
    }
    dr.Close();

    int i;
    //给原始位置做上记号
    MyComm.CommandText = "UPDATE University SET paixu = 10000 WHERE paixu ="+OrignPosition;
    MyComm.ExecuteNonQuery();
    if(OrignPosition > InsertPosition)
    {

    for(i=OrignPosition-1;i>InsertPosition;i--)
    {
    MyComm.CommandText = "UPDATE University SET paixu ="+(i+1)+" WHERE paixu ="+i;
    MyComm.ExecuteNonQuery();
    }
    //把记录插入到插入点后
    MyComm.CommandText = "UPDATE University SET paixu ="+(InsertPosition+1)+" WHERE paixu = 10000";
    MyComm.ExecuteNonQuery(); }
    else
    {
    for(i=OrignPosition+1;i<=InsertPosition;i++)
    {
    MyComm.CommandText = "UPDATE University SET paixu ="+(i-1)+" WHERE paixu ="+i;
    MyComm.ExecuteNonQuery();
    }
    //把记录插入到插入点
    MyComm.CommandText = "UPDATE University SET paixu ="+InsertPosition+" WHERE paixu = 10000";
    MyComm.ExecuteNonQuery();

    }
    MyConn.Close();
    Response.Redirect( "paixu.aspx" );
    }private void lblCollegeName_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    if(this.lblCollegeName.SelectedItem!=null)

    ViewState["name"]=this.lblCollegeName.SelectedItem.Text.ToString();
    ViewState["OrignPosition"] = this.lblCollegeName.SelectedItem.Value.ToString();
    }
    }