首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

50分求下拉列表框的极其奇怪的有关问题,大家进来看看

2012-01-23 
50分求下拉列表框的极其奇怪的问题,大家进来看看啊我要做的是有刷新的两个下拉框,DropDownList1中除了从数

50分求下拉列表框的极其奇怪的问题,大家进来看看啊
我要做的是有刷新的两个下拉框,DropDownList1中除了从数据库中填充以外,又手动增加了四项,DropDownList1的AutoPostBack也设置为了True,可是怪事出来了,当选择
DropDownList1的时候,只有选择从数据库中填充的数据才能激活DropDownList1_SelectedIndexChanged
事件,选择手动增加的那四项(即人民代表大会等四项)是没有用的,不会有任何事件发生,而且明明选择了“人民代表大会”,它的当前项也马上变成第一项“请选择”,不会停留在
“人民代表大会”上,请问大家这是怎么回事呢?
下面是全部代码:


private   void   Page_Load(object   sender,   System.EventArgs   e)
{
//   在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
DownBind1();
}
}

private   void   DropDownList1_SelectedIndexChanged(object   sender,   System.EventArgs   e)
{
string   sValue   =   this.DropDownList1.SelectedValue.ToString();
string   sText=this.DropDownList1.SelectedItem.Text;
int   sIndex=this.DropDownList1.SelectedIndex;

if   (sIndex <4)
{
string   gcd= "select   编码,机构名称   from   政府通讯录   where   机构名称1= ' "+sText+ " ' ";
DataTable   mytab   =   Class.DataAccess.GetSqlData   (gcd);

  this.DropDownList2.DataSource   =   mytab;
  this.DropDownList2.DataValueField   =   "编码 ";
  this.DropDownList2.DataTextField   =   "机构名称 ";
  this.DropDownList2.DataBind();
}
else
{
sValue=sValue.Substring(0,2);
  string   sql   =   "SELECT   行政区代码,名称1   FROM   行政编码   WHERE   (名称1   IS   NOT   NULL)   AND   (名称2   IS   NULL)   AND   (行政区代码   like   ' "   +   sValue+ "% ') "   ;
  DataTable   mytab   =   Class.DataAccess.GetSqlData   (sql);

  this.DropDownList2.DataSource   =   mytab;
  this.DropDownList2.DataValueField   =   "行政区代码 ";
  this.DropDownList2.DataTextField   =   "名称1 ";
  this.DropDownList2.DataBind();
}
}

private   void   DownBind1()
{
string   sql   =   "SELECT   DISTINCT   行政区代码,名称   FROM   行政编码   WHERE   名称1   IS   NULL ";
DataTable   mytab   =   Class.DataAccess.GetSqlData   (sql);

this.DropDownList1.DataSource   =   mytab;
this.DropDownList1.DataValueField   =   "行政区代码 ";
this.DropDownList1.DataTextField   =   "名称 ";
this.DropDownList1.DataBind();

this.DropDownList1.Items.Insert(0,new   ListItem( "请选择 ", " "));
this.DropDownList1.Items.Insert(1,new   ListItem( "中国共产党 ", " "));
this.DropDownList1.Items.Insert(2,new   ListItem( "人民代表大会 ", " "));
this.DropDownList1.Items.Insert(3,new   ListItem( "政治协商会议 ", " "));
this.DropDownList1.Items.Insert(4,new   ListItem( "国家机关 ", " "));
}

[解决办法]
你选定自动提交后又刷新了一次`页面嘛!

你调试你的代码`看每步怎么走!就可以检查出问题了!
[解决办法]
你将 this.DropDownList1.Items.Insert(0,new ListItem( "请选择 ", " "));
this.DropDownList1.Items.Insert(1,new ListItem( "中国共产党 ", " "));
this.DropDownList1.Items.Insert(2,new ListItem( "人民代表大会 ", " "));
this.DropDownList1.Items.Insert(3,new ListItem( "政治协商会议 ", " "));
this.DropDownList1.Items.Insert(4,new ListItem( "国家机关 ", " "));


几项添加到datasouce 的datatable中 这样操作也方便多了
[解决办法]
问题出在这几行:
this.DropDownList1.Items.Insert(0,new ListItem( "请选择 ", " "));
this.DropDownList1.Items.Insert(1,new ListItem( "中国共产党 ", " "));
this.DropDownList1.Items.Insert(2,new ListItem( "人民代表大会 ", " "));
this.DropDownList1.Items.Insert(3,new ListItem( "政治协商会议 ", " "));
this.DropDownList1.Items.Insert(4,new ListItem( "国家机关 ", " "));
在刷新的时候这些行的SelectedValue都是 " ",所以无法定位到你刚刚选的那一行,这样改一下就行了:
this.DropDownList1.Items.Insert(0, new ListItem( "请选择 ", "请选择 "));
this.DropDownList1.Items.Insert(1, new ListItem( "中国共产党 ", "中国共产党 "));
this.DropDownList1.Items.Insert(2, new ListItem( "人民代表大会 ", "人民代表大会 "));
this.DropDownList1.Items.Insert(3, new ListItem( "政治协商会议 ", "政治协商会议 "));
this.DropDownList1.Items.Insert(4, new ListItem( "国家机关 ", "国家机关 "));
[解决办法]
你自己添加的内容只有Text,没有Value?

热点排行