Wählen Sie die Option Ändern DropdownList C# ASP.NET Feuer-Event

Ich habe ein drop-down-Liste in asp.net Wenn ich auf eine option, ich sollte der Wert gewählt ist, dann übergeben Sie es an eine Datenbank und später verwenden Sie die Ergebnisse der Abfrage zum füllen einer zweiten drop-down-Liste.

Scheine ich nicht in der Lage sein, um das "Feuer" dieses Ereignis, wenn ich auf die ersten drop-down-Menü. Unten ist das, was ich habe:

ASPX-Code

<td class="style3">
                <asp:DropDownList ID="Currencies" runat="server" 
                    onselectedindexchanged="Currencies_SelectedIndexChanged">
                </asp:DropDownList>
            </td>
            <td>
                &nbsp;</td>
        </tr>
        <tr>
            <td class="style2">
                Payment Mode</td>
            <td class="style3">
                <asp:DropDownList ID="PaymentModes" runat="server">
                </asp:DropDownList>
            </td> 

CodeBehind-code C#

String conn = WebConfigurationManager.ConnectionStrings["pvconn"].ToString();
    protected void Page_Load(object sender, EventArgs e)
    {
        populatecurrencylist();

    }

    public void populatecurrencylist() 
    {
        SqlCommand sql = new SqlCommand("SELECT * FROM CURRENCIES_TBL ORDER BY Currency_Initials",new SqlConnection(conn));
        sql.Connection.Open();
        SqlDataReader listcurrencies;
        listcurrencies = sql.ExecuteReader();
        Currencies.DataSource = listcurrencies;
        Currencies.DataTextField = "Currency_Initials";
        Currencies.DataValueField = "Currency_Group_ID";
        Currencies.DataBind();
        sql.Connection.Close();
        sql.Connection.Dispose();
    }

    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {

    }
    protected void Currencies_SelectedIndexChanged(object sender, EventArgs e)
    {
        var currid = Currencies.SelectedValue;
        HttpContext.Current.Response.Write(currid);
        //int currid = 0;
        try
        {
            SqlCommand sql = new SqlCommand("SELECT * FROM PAYMENT_MODES_TBL WHERE Currency_ID = @currencyid", new SqlConnection(conn));
            SqlParameter param0 = new SqlParameter();
            param0.ParameterName = "@currencyid";
            param0.SqlDbType = System.Data.SqlDbType.Int;
            param0.Value = currid;

            sql.Parameters.Add(param0);
            sql.Connection.Open();
            SqlDataReader listpaymodes;
            listpaymodes = sql.ExecuteReader();
            PaymentModes.DataSource = listpaymodes;
            PaymentModes.DataTextField = "Payment_Mode";
            PaymentModes.DataValueField = "Paying_Account_Code";
            PaymentModes.DataBind();
            sql.Connection.Close();
            sql.Connection.Dispose();
        }
        catch(Exception s)
        {
            HttpContext.Current.Response.Write("Error Occured " + s.Message);
        }            
    } 

Kann ich füllen Sie die erste dropdownlist, ohne ein problem. Das zweite ist, was scheint nicht zu funktionieren. Ganz neu in ASP.NET. Ich komme aus einer PHP-hintergrund, wo dieser würde erreicht werden, einfach mithilfe von jquery-ajax, aber ich möchte lernen in C#.

Jede Hilfe dankbar.

BEARBEITEN

Alle Antworten vorschlagen, dass ich die Währungen dropdown-Liste, um AutoPostBack = true
Ich habe das getan:

<asp:DropDownList ID="Currencies" runat="server" AutoPostBack="True" 
                    onselectedindexchanged="Currencies_SelectedIndexChanged">
                </asp:DropDownList> 

Aber es scheint immer noch nicht zu funktionieren. Auf einer seitlichen Anmerkung, die Seite wird neu geladen und meine wählen Sie im Menü die option wird zurückgesetzt, um die erste option.

  • Fügen Sie AutoPostBack-Eigenschaft auf true.
  • Aktualisiert meine Antwort.
InformationsquelleAutor MaxI | 2012-09-21
Schreibe einen Kommentar