Ich habe den folgenden Code LoadRegistrations();
, um eine DropDownList
mit Werten aus einer SQL-Datenbank zu füllen.Übergeben Dropdown-Liste in eine Methode
Ich werde wahrscheinlich dies mehrmals an verschiedenen Orten verwenden, also wollte ich eine Methode schreiben, um sich darum zu kümmern, anstatt diese Methode zu kopieren und kleinere Details zu ändern.
Ich habe so weit gekommen, wie die DataTable
bevölkern, aber ich bin nicht sicher, wie etwa Übergabe eines DropDownList
& die DataTextField
+ DataValueField
hinein und Binden der Daten zu gehen. Bitte erläutern Sie, was ich
Original-Methode
private void LoadRegistrations()
{
DataTable reg = new DataTable();
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnString1"].ToString()))
{
try
{
SqlDataAdapter adapter = new SqlDataAdapter("select vehicleID, regNo from dbo.Vehicles order by regNo Asc", con);
adapter.Fill(reg);
ddreg.DataSource = reg;
ddreg.DataTextField = "regNo";
ddreg.DataValueField = "vehicleID";
ddreg.DataBind();
}
catch (Exception ex)
{
// Error handling to be done
}
}
}
Neue Methode
private DataTable PopulateDropdown(string connectionString, DataTable datatable, string query)
{
DataTable dt = new DataTable();
using (SqlConnection con = new SqlConnection(connectionString))
{
try
{
SqlDataAdapter adapter = new SqlDataAdapter(query, con);
adapter.Fill(dt);
//What do I do here? I want to bind to a dropdown list passed into this method
}
catch (Exception ex) { }
}
return dt;
}
ASP erzeugen Dropdown
<asp:DropDownList ID="ddreg" CssClass="form-control" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text="<Select Registration Number>" Value="0" />
</asp:DropDownList>
Haben Sie versucht, naja, eine 'DropDownList' als Methodenparameter hinzuzufügen? – David
Wenn ich das versuche, bekomme ich einen 'Typ von Namespace fehlt' Fehler. Es ist Codebehind für ein Kind einer Masterseite, nicht sicher, ob ich eine erforderliche Assembly vermisse, aber es scheint in Ordnung zu sein, ein Dropdown-Listenobjekt in meiner ersten Methode innerhalb desselben Skripts zu verwenden. –