我有以下代码LoadRegistrations();
来填充DropDownList
来自SQL数据库的值。
我可能会在不同的地方多次使用它,所以想写一个方法来处理它,而不是复制这个方法和改变小细节。
我已经填充了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>
答案 0 :(得分:2)
您已经创建了一个带参数的方法:
DropDownList
如果您想将private DataTable PopulateDropdown(string connectionString, DataTable datatable, string query, DropDownList myDropDownList)
传递给该方法,请执行您已完成的操作并添加参数:
myDropDownList
然后在方法中,您可以参考myDropDownList.DataSource = dt;
myDropDownList.DataBind();
:
DropDownList
调用该方法时,您需要将PopulateDropDown(someConnectionString, someDataTableYouDoNotUse, someQuery, ddreg);
传递给您:
feature
答案 1 :(得分:0)
private DataTable PopulateDropdown(string connectionString, DataTable datatable, string query, System.Web.UI.WebControls.DropDownList yourDropdownList)
{
SqlDataAdapter adapter = new SqlDataAdapter(query, con);
adapter.Fill(dt);
yourDropdownList.DataSource = dt;
yourDropdownList.DataBind();
return dt;
}