将下拉列表传递给方法

时间:2016-11-16 15:15:23

标签: c#

我有以下代码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>

2 个答案:

答案 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;

    }
相关问题