下拉列表选择的索引已更改

时间:2010-04-19 10:28:03

标签: asp.net

我做了下拉列表,从数据库中获取了它的值,在运行应用程序时,它没有工作,编译器也看不到代码。

// aspx

  <asp:UpdatePanel ID="UpdatePanel3" runat="server">
                 <ContentTemplate>
                       <asp:DropDownList ID="DDlProductFamily" runat="server"
                         ondatabound="DDlProductFamily_DataBound"
                         onselectedindexchanged="DDlProductFamily_SelectedIndexChanged">
                                                </asp:DropDownList>
                                            </ContentTemplate>
                                            <Triggers>
                                                <asp:AsyncPostBackTrigger ControlID="DDlProductFamily" EventName="SelectedIndexChanged" />
                                            </Triggers>
                                        </asp:UpdatePanel>

// cs

 protected void DDlProductFamily_SelectedIndexChanged(object sender, EventArgs e)
    {
        using (SqlConnection Con = Connection.GetConnection())
        {
            SqlCommand Com = new SqlCommand("SelectThumbByProductFamily", Con);
            Com.CommandType = CommandType.StoredProcedure;
            Com.Parameters.Add(Parameter.NewInt("@ProductCategory_Id",
                DDlProductFamily.SelectedValue.ToString()));
            SqlDataAdapter DA = new SqlDataAdapter(Com);
            DA.Fill(dt);
            DataList1.DataSource = dt;
            DataList1.DataBind();
        }
    }

3 个答案:

答案 0 :(得分:3)

检查列表框是否具有属性AutoPostBack =“True”。

答案 1 :(得分:1)

您需要加载DLL数据,例如,Page Load,它是空的,因此您的DDL永远不会更改其SelectedIndex。

你需要做类似这样的伪代码:

Page_load
{
   if(!IsPostBack)
   {
       BindData();

   }
}

BindData()
{
     // Do your DataBase/whatever call to fill the DDL


}

您的受保护的void DDlProductFamily_SelectedIndexChanged(对象发送者,EventArgs e)的代码保持不变。

您的DDL还需要属性AutoPostBack =“true”

答案 2 :(得分:0)

您是否在ASPX页面顶部的页面指令中设置了AutoEventWireup="true"?您需要将此设置设置为true才能使代码正常工作。

有关详细信息,请参阅Information about the AutoEventWireup attribute

  

在Visual Studio .NET或Visual中   Studio 2005,事件必然会发生   使用事件的事件处理程序方法   与会代表。如果您使用Web窗体   设计人员设计Web表单,   设计师自动生成代码   将事件绑定到其事件处理程序   方法