我使用以下代碼LoadRegistrations();
來使用來自SQL數據庫的值填充DropDownList
。將下拉列表傳遞到方法
我可能會在不同的地方使用這幾次,所以想編寫一個方法來照顧它,而不是複製這種方法和改變小細節。
我儘量填充DataTable
了,但我不知道如何去傳遞一個DropDownList
&的DataTextField
+ DataValueField
到它和數據綁定。請解釋什麼,我要做的
原始方法
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
}
}
}
新方法
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生成下拉
<asp:DropDownList ID="ddreg" CssClass="form-control" runat="server" AppendDataBoundItems="true">
<asp:ListItem Text="<Select Registration Number>" Value="0" />
</asp:DropDownList>
你有沒有嘗試過,添加一個'DropDownList'作爲方法參數? – David
如果我嘗試這樣做,我會得到'缺少名稱空間'類型的錯誤。它是母版頁的孩子的代碼隱藏,不知道我是否缺少所需的程序集,但似乎可以在我的第一個方法中使用同一個腳本中的下拉列表對象。 –