把Page_Load中,绑定DropDownList的代码,放到IsPostBack中:
if (!IsPostBack)
{
lstProject.DataBind();
}
if (!IsPostBack)
{
lstProject.DataBind();
}
解决方案 »
- 错误 CS1519: 类、结构或接口成员声明中的标记“<”无效
- ==咨询一个水晶报表的实现问题====
- 找一个.net2.0下能用的 json字符串反序列化为datatable对象代码
- MVC3 下关于 uploadify 的问题
- 我装了这个,不知为什么在vs2005里面显示,在2010里面不能显示
- 求个asp.net新闻采集例子
- 尝试使用WScript.Shell打开客户端的可执行文件
- DB4o保存数据出现异常,有人知道吗????
- 很郁闷的问题,而且太难解决了!大家都来看看
- DataGrid控件可以横向显示吗?
- 如何定制DataGrid的每列的宽度?
- 哪儿有《ASP.NET 1.0高级编程》这本书下载呀,
{
//绑定数据
}
lstProject.AutoPostBack=true;
end if
{
//将dropdownlist绑定到数据源
}如果没有这样写的话,那么每次提交窗体时都重新绑定到数据源,当然返回的是默认的第一项的值了
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明明有好几项的啊
将lstProject.DataSource的数据源,放入ViewState中再试试.
lstProject重新邦定后,lstProject.SelectedValue就是第一项的值。
可以使用 ViewState 属性在到服务器的往返过程间保存独立于控件状态的值,具体说明可参阅MSDN。
1、Page_Load中
if(!IsPostBack)
{
//初始化dataSet1
ViewState["dataSet1"]=dataSet1;
//用dataSet1绑定控件
}
else
this.dataSet1=(DataSet)ViewState["dataSet1"];
2、提交处理的代码中加入
lstProject.DataSource =dataSet1;
lstProject.DataBind();你试试吧。
好像这样的结果是一选择其中一项,页面就刷新一次,然后所有的项都不见了
lstProject.DataValueField = "ID";
这两个不要设为不同的就OK啦
比如:lstProject.DataTextField = "PROJECTINFO";
lstProject.DataValueField = "PROJECTINFO";
试试看吧,我也不知道为什么,我只知道怎么能让他操作上没错误
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();
}
}
}你试试我的这段代码,我运行了不会出现你说的状况。你和你自己的对照一下,看看那里不一样。
{
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的值是不会变的。
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);
……
}
}
怎么回事?
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();
}
<pages buffer="true" enableSessionState="ReadOnly" enableViewState="false" enableViewStateMac="false" smartNavigation="false" />
请高人解释一下这句话的含义和用途!!!!!