我的dropdownlist不管选哪项,提交后处理怎么lstProject.SelectedValue都是第一项的值啊

Reminisce 2003-10-15 04:46:24
我的dropdownlist不管选哪项,提交后处理怎么lstProject.SelectedValue都是第一项的值啊
...全文
155 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
Reminisce 2003-10-17
  • 打赏
  • 举报
回复

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);
……
}
}
mjzcyber 2003-10-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的值是不会变的。

Reminisce 2003-10-17
  • 打赏
  • 举报
回复
有人能发出了样例吗????zj_huang@hotmail.com
mjzcyber 2003-10-17
  • 打赏
  • 举报
回复
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();
}
}
}

你试试我的这段代码,我运行了不会出现你说的状况。你和你自己的对照一下,看看那里不一样。
Reminisce 2003-10-17
  • 打赏
  • 举报
回复
不可能吧,那option不是没有什么意义了吗???
Reminisce 2003-10-17
  • 打赏
  • 举报
回复
我在学习Microsoft PetShop.Net DEMO,哪儿有的,有人知道意思吗?
uugo 2003-10-17
  • 打赏
  • 举报
回复
我的Web.Config中怎么没这句?
Reminisce 2003-10-17
  • 打赏
  • 举报
回复
终于找到问题根源了,我把Web.Config中的一句话去掉就OK了:
<pages buffer="true" enableSessionState="ReadOnly" enableViewState="false" enableViewStateMac="false" smartNavigation="false" />
请高人解释一下这句话的含义和用途!!!!!
Reminisce 2003-10-17
  • 打赏
  • 举报
回复
是啊
mjzcyber 2003-10-17
  • 打赏
  • 举报
回复
你的dropdownlist的选项是从数据库中读的吗?
Reminisce 2003-10-17
  • 打赏
  • 举报
回复
我的问题是如果设置其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();
}
uugo 2003-10-16
  • 打赏
  • 举报
回复
每次刷新页面,页面上的控件都重新进行绑定,因此,每次页面刷新的时候,页面控件中的数据也就已经释放掉了,而重新进行绑定。
lstProject重新邦定后,lstProject.SelectedValue就是第一项的值。
可以使用 ViewState 属性在到服务器的往返过程间保存独立于控件状态的值,具体说明可参阅MSDN。
Reminisce 2003-10-16
  • 打赏
  • 举报
回复
不解,完全新人,请解释
uugo 2003-10-16
  • 打赏
  • 举报
回复
使用视图状态保存 Web 窗体中的DataSet.
将lstProject.DataSource的数据源,放入ViewState中再试试.
Reminisce 2003-10-16
  • 打赏
  • 举报
回复
写了啊
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明明有好几项的啊
momoguagua 2003-10-16
  • 打赏
  • 举报
回复
lstProject.DataTextField = "PROJECTINFO";
lstProject.DataValueField = "ID";


这两个不要设为不同的就OK啦
比如:lstProject.DataTextField = "PROJECTINFO";
lstProject.DataValueField = "PROJECTINFO";


试试看吧,我也不知道为什么,我只知道怎么能让他操作上没错误
srj911 2003-10-16
  • 打赏
  • 举报
回复
没有人回答了吗?焦急的期待中
Reminisce 2003-10-16
  • 打赏
  • 举报
回复
那么设置DropDownList的autopostback 属性为true吗????
好像这样的结果是一选择其中一项,页面就刷新一次,然后所有的项都不见了
lufly2000 2003-10-16
  • 打赏
  • 举报
回复
if(!IsPostBack)
{
//将dropdownlist绑定到数据源
}

如果没有这样写的话,那么每次提交窗体时都重新绑定到数据源,当然返回的是默认的第一项的值了。。。
uugo 2003-10-16
  • 打赏
  • 举报
回复
你这样写代码试试:
1、Page_Load中
if(!IsPostBack)
{
//初始化dataSet1
ViewState["dataSet1"]=dataSet1;
//用dataSet1绑定控件
}
else
this.dataSet1=(DataSet)ViewState["dataSet1"];
2、提交处理的代码中加入
lstProject.DataSource =dataSet1;
lstProject.DataBind();

你试试吧。
加载更多回复(7)
查询功能代码(包括普通查询和全部查询):protected void Button2_Click(object sender, EventArgs e) { DataSet ds = new DataSet(); DataBS(ds, strsql); GridView1.DataSource = ds.Tables["table"]; GridView1.DataBind(); DropDownList1.SelectedValue = "不限"; DropDownList2.SelectedValue = "不限"; DropDownList3.SelectedValue = "不限"; DropDownList4.SelectedValue = "不限"; DropDownList5.SelectedValue = "不限"; Label8.Text = "查询结果: 共" + ds.Tables[0].Rows.Count + "条记录"; } protected void Button1_Click(object sender, EventArgs e) { string str = ""; string str1 = ""; if (DropDownList1.SelectedItem.Text != "不限") str += " and CourseGrade='" + DropDownList1.SelectedValue + "'"; if (DropDownList2 .SelectedItem .Text !="不限") str +=" and CourseTerm='" + DropDownList2.SelectedValue + "'"; if (DropDownList3.SelectedItem.Text != "不限") str += " and CourseSort='" + DropDownList3.SelectedValue + "'"; if (DropDownList4.SelectedItem.Text != "不限") str += " and SpecialtyDirection='" + DropDownList4.SelectedValue + "'"; if (DropDownList5.SelectedItem.Text != "不限") str += " and CourseTeacher='" + DropDownList5.SelectedValue + "'"; if (str != "") { str1 = str.Substring(5); strsql += " where " + str1; } DataSet ds = new DataSet(); DataBS(ds, strsql); if (ds.Tables[0].Rows.Count != 0) { GridView1.DataSource = ds.Tables["table"]; GridView1.DataBind(); } else { Response.Write("<script language=JavaScript>alert('没有符合条件的记录!');

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧