日期:2014-05-18  浏览次数:21030 次

下午结的贴,还是有问题
我的信息修改页edit.aspx 中有dropdownlist:ddl_sshy,其数据源为sqldatasource3控件
 <asp:DropDownList ID="ddl_sshy" runat="server" 
DataSourceID="SqlDataSource3" DataTextField="行业分类" DataValueField="id" 
  Width="100px" Height="20px">
  </asp:DropDownList>
  <asp:SqlDataSource ID="SqlDataSource3" runat="server"  
ConnectionString="<%$ ConnectionStrings:DataConnectionString %>" 
  SelectCommand="SELECT [id], [行业分类] FROM [行业分类]">
  </asp:SqlDataSource>
行业当然很多了,而在edit.aspx.cs里
  protected void Page_Load(object sender, EventArgs e)
  {
  if (!IsPostBack)
  { ......//调出数据库中一条记录的数据,赋值给各个TextBox、DropDownlist....
  this.tb_mc.Text = rs["名称"].ToString(); //rs为一dataset
  this.tb_jg.Text = rs["价格"].ToString();
......
在这里如何让dropdownlist:ddl_sshy的默认显示项为 rs["行业"].ToString()的内容
}
  }
后来加了一段
  ListItem item = this.ddl_sshy.Items.FindByValue(rs["行业"].ToString().Trim());
  if (item != null)
  {
  this.ddl_sshy.SelectedIndex = this.ddl_sshy.Items.IndexOf(item);
  }
调试发现item竟然为空(null)

  后来发现在pageload完成之前其items.count=0


  bool judge = false; 
  for (int i = 0;i < this.ddl_sshy.Items.Count;i ++) 
  {
  this.Label1.Text = this.ddl_sshy.Items[i].Text;
  if (this.ddl_sshy.Items[i].Text == rs["所属行业"].ToString()) 
  {
  judge = true; 
  }
  } 


总不至于每次修改完其他内容后都重新选择该行业字段,再保存啊
syq716@163.com QQ:948043613


------解决方案--------------------
那你的DropDownList也没有绑定上数据啊,

------解决方案--------------------
在绑定之后赋个初始值就行了啊。