前代码
<form id="Form1" method="post" runat="server">
<asp:DropDownList id="DropDownList1" runat="server"></asp:DropDownList>
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
</form>按钮事件
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write(DropDownList1.SelectedItem.Text.ToString());
}
绑定到下拉数据的略过。无论下拉里选什么,都只能是取得的一样呢。

解决方案 »

  1.   

    把绑定写在  if(!Page.IsPostBack) 里
      

  2.   

    if (!this.IsPostBack)
    {
    BindKeyClassList();
    BindiKeyList();

    }
    如果放到postback里去。就没被绑定内容了。怎么回事呢。我新建了个页面,如此做又可以的。
      

  3.   

    无缘无故的又好了。-_-!!!
    但我还是不明白为什么必须放到IsPostBack里去呢。
      

  4.   

    因为Button1_Click的时候会post页面
    如果不放到IsPostBack里,那他就会重新绑定
    你可以在pageload里面
    分别写在IsPostBack里面和外面
    并且设定断点
    跟踪一下就明白了
      

  5.   

    呵呵,楼上已经解释的很清楚了当你的Button1被Click的时候,不是立即执行你Button1_Click函数中的内容,而是先执行Page_Load()里面的内容
    “!IsPostBack”的含义就是判断页面是否已经被刷新过,如果你不添!IsPostBack的话,每次你click服务器端控件,比如你的Button1,程序都会运行一遍在Page_Load中你绑定数据的函数,这样每次DropDownList的默认SelectItem毫无疑问,肯定上是第一项