把Page_Load中,绑定DropDownList的代码,放到IsPostBack中:
if (!IsPostBack)
{
  lstProject.DataBind();
}

解决方案 »

  1.   

    设置其autopostback 属性为true;
      

  2.   

    if (!Page.IsPostBack)
    {
      //绑定数据
    }
      

  3.   

    如果不能放到if (!Page.IsPostBack)中绑定,可以用HTMLCONTRAL的Select来代替
      

  4.   

    好了,现在lstProject.Items.Count=0,lstProject.SelectedValue=""了,怎么回事啊,越来越不对了
      

  5.   

    page_load里
    lstProject.AutoPostBack=true;
      

  6.   

    if not page.ispostback then'你绑定lstproject的代码
    end if
      

  7.   

    if(!IsPostBack)
    {
      //将dropdownlist绑定到数据源
    }如果没有这样写的话,那么每次提交窗体时都重新绑定到数据源,当然返回的是默认的第一项的值了
      

  8.   

    写了啊
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!IsPostBack)
    {
    BTMS.Components.Project AllProjectInfo = new BTMS.Components.Project();
    lstProject.DataSource = AllProjectInfo.GetProjectMainInfos();
    lstProject.DataTextField = "PROJECTINFO";
    lstProject.DataValueField = "ID";
    lstProject.DataBind();
    }
    }protected void SubmitClicked(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    if (Page.IsValid) 
    {

    bool success;
    if (lstProject.Items.Count==0)    //现在一直为零
    success=false;
                      ……
                      int i;
                      i = System.Int32.Parse(lstProject.SelectedValue); //现在一直为空
                      ……网页上的控件:<asp:DropDownList id="lstProject" runat="server" AutoPostBack="True"></asp:DropDownList>怎么解决???DropDownList明明有好几项的啊
      

  9.   

    使用视图状态保存 Web 窗体中的DataSet.
    将lstProject.DataSource的数据源,放入ViewState中再试试.
      

  10.   

    每次刷新页面,页面上的控件都重新进行绑定,因此,每次页面刷新的时候,页面控件中的数据也就已经释放掉了,而重新进行绑定。
    lstProject重新邦定后,lstProject.SelectedValue就是第一项的值。
    可以使用 ViewState 属性在到服务器的往返过程间保存独立于控件状态的值,具体说明可参阅MSDN。
      

  11.   

    你这样写代码试试:
    1、Page_Load中
    if(!IsPostBack)
    {
      //初始化dataSet1
      ViewState["dataSet1"]=dataSet1;
      //用dataSet1绑定控件
    }
    else
      this.dataSet1=(DataSet)ViewState["dataSet1"];
    2、提交处理的代码中加入
    lstProject.DataSource =dataSet1;
    lstProject.DataBind();你试试吧。
      

  12.   

    那么设置DropDownList的autopostback 属性为true吗????
    好像这样的结果是一选择其中一项,页面就刷新一次,然后所有的项都不见了
      

  13.   

    lstProject.DataTextField = "PROJECTINFO";
    lstProject.DataValueField = "ID";
    这两个不要设为不同的就OK啦
    比如:lstProject.DataTextField = "PROJECTINFO";
          lstProject.DataValueField = "PROJECTINFO";
    试试看吧,我也不知道为什么,我只知道怎么能让他操作上没错误
      

  14.   

    不可能吧,那option不是没有什么意义了吗???
      

  15.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Data.OracleClient;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace WebApplication1
    {
    /// <summary>
    /// WebForm3 的摘要说明。
    /// </summary>
    public class WebForm3 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.DropDownList DropDownList1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面 if(!IsPostBack)
    {
    BindDropList();
    }
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion protected void BindDropList()
    {
    this.DropDownList1.Items.Add(new ListItem("1"));
    this.DropDownList1.Items.Add(new ListItem("2"));
    this.DropDownList1.Items.Add(new ListItem("3"));
    this.DropDownList1.Items.Add(new ListItem("4"));
    this.DropDownList1.Items.Add(new ListItem("5"));
    this.DropDownList1.DataBind();
    }
    }
    }你试试我的这段代码,我运行了不会出现你说的状况。你和你自己的对照一下,看看那里不一样。
      

  16.   

    有人能发出了样例吗????[email protected]
      

  17.   

    if(!IsPostBack)
      {
    BindDropList();
      }
    this.Label1.Text = this.DropDownList1.SelectedValue.ToString();

    如果this.Label1.Text = this.DropDownList1.SelectedValue.ToString();放在if语句的大括号里边,则,当你的dropdownlist在autopostback = true;的时候,刷新页面,this.label1.text的值始终为刚打开页面第一次执行时候的值,如果把this.Label1.Text = this.DropDownList1.SelectedValue.ToString();放在if语句的大括号外面,在,dorpdownlist的autopostback = true;的时候,随着dropdownlist选项的变化,this.label1.text的值也会变化。
    ---------
    我觉得是不是你把selectedvalue语句放在IsPostBack = false的{}里边了,这样,无论你的页面怎么postback,那么,selectedvalue的值是不会变的。
      

  18.   


    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    BTMS.Components.Project AllProjectInfo = new BTMS.Components.Project();
    lstProject.DataSource = AllProjectInfo.GetProjectMainInfos();
    lstProject.DataTextField = "PROJECTINFO";
    lstProject.DataValueField = "ID";
    lstProject.DataBind();
    }
    }protected void SubmitClicked(object sender, System.Web.UI.ImageClickEventArgs e)
    {
    if (Page.IsValid) 
    {
    int success = int.Parse(lstProject.SelectedValue); 
    ……
    }
    }
      

  19.   

    我的问题是如果设置其autopostback 属性为true后,DropDownList1的所有项都不见了????变空了!!!!!!!!!!!!
    怎么回事?
    private void Page_Load(object sender, System.EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    BTMS.Components.Project AllProjectInfo = new BTMS.Components.Project();
    this.lstProject.DataSource = AllProjectInfo.GetProjectMainInfos();
    this.lstProject.DataTextField = "PROJECTINFO";
    this.lstProject.DataValueField = "ID";
    this.lstProject.DataBind();
    }
    this.Label2.Text = this.lstProject.SelectedValue.ToString();
    }
      

  20.   

    你的dropdownlist的选项是从数据库中读的吗?
      

  21.   

    终于找到问题根源了,我把Web.Config中的一句话去掉就OK了:
    <pages buffer="true" enableSessionState="ReadOnly" enableViewState="false" enableViewStateMac="false" smartNavigation="false" />
    请高人解释一下这句话的含义和用途!!!!!
      

  22.   

    我在学习Microsoft PetShop.Net DEMO,哪儿有的,有人知道意思吗?