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>
</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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern
Zu
UPDATE
Update auf deine Frage, nach dem update.
Ändern:
Zu diesem:
Stellen Sie sicher, dass Ihre dropdown-Liste
Currencies
eingestellt istAutoPostBack="True"
.Als Sie neu an diese Dinge.Gehen Sie durch die unten links.
http://asp-net-example.blogspot.in/2009/03/how-to-use-dropdownlist-autopostback.html
Dieser link kann Ihnen helfen
Machen Währungen DropDown-Autopostback True.
Standardmäßig die
AutoPostBack
Eigenschaft vonDropDownList
ist falsch.Geben Sie es als wahr:
Wenn dies immer noch nicht funktioniert dann könnte es sein, dass Sie Steuerelemente innerhalb eines
UpdatePanel
und müssen angeben, ein Auslöser.Müssen Sie nur legen Sie Autopostback=True.