日期:2014-05-17  浏览次数:20466 次

【求助】控件响应导致Page_Load重新加载。。。。。。。。。。。。标题要长
我写了一个页面,运行之后,不论我选择哪一个下拉框中的元素,Label显示的都是第一个的内容。
我怀疑是我点击“提交”的时候,页面自动会运行一次Page_Load, 将Selected.Item自动置为第一个了?
但我也不知道是不是这么回事,因为我的环境没有办法调试跟代码。
如果是这个原因,那怎么才能避免?如果不是的话,那是什么问题造成的呢?
请大侠指点迷津。谢谢了。。。

=============================================
  代码
=============================================
<!-- %@ Page Language="C#" AutoEventWireup="true" CodeFile="DropdwonList.aspx.cs" Inherits="_Dropdwon" % -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
  <title>动态DropDownList演示</title>
  <script language="C#" runat="Server">
  void Page_Load(Object sender,EventArgs e)
  {
  ArrayList values = new ArrayList();
  values.Add("北京");
  values.Add("深圳");
  values.Add("上海");
  values.Add("广州");
  values.Add("南宁");
  values.Add("重庆");
  DropDown1.DataSource = values;
  DropDown1.DataBind();
  }
  void select02_Click(Object sender,EventArgs e)
  {
  Label1.Text = "您选择的是:" + DropDown1.SelectedItem.Text;
  }
  </script>
</head>
<body bgcolor="#eeeeee">
<br /><br /><br />
<center>
<h3><font face="Verdana">.net->列表控件</font></h3>
</center>
<br /><br />
<center>
<form runat="Server">
<asp:DropDownList id="DropDown1" runat="Server" />
<asp:Button Text="提交" OnClick="select02_Click" runat="Server" />
<p></p>
<asp:Label id="Label1" font-name="Verdana" font-size="10pt" runat="Server" />
</form>
</center>
</body>
</html>

==============================================================

------解决方案--------------------
DropDownList 加上 AutoPostBack="True" 属性
------解决方案--------------------
if(!IsPostback)
{
..
DropDown1.DataSource = values;

}
------解决方案--------------------
if(!IsPostback)
{
在这里处理逻辑

}