如何在函数中传递asp.net服务器控件类型?

如何在函数中传递asp.net服务器控件类型?,asp.net,controls,Asp.net,Controls,我正在类文件中编写一个函数,该函数连接到数据库并加载数据。我想将查询、asp.net控件类型和控件id传递给函数,这样当我调用函数时,它可以根据控件类型加载数据,我将为每个控件类型编写一个切换案例。像这样的事情: public static string LoadData(string qry, Controltype, controlId) { string connstring = "......"; OleDbDataAdapter da = new OleDbDataAdapter

我正在类文件中编写一个函数,该函数连接到数据库并加载数据。我想将查询、asp.net控件类型和控件id传递给函数,这样当我调用函数时,它可以根据控件类型加载数据,我将为每个控件类型编写一个切换案例。像这样的事情:

public static string LoadData(string qry, Controltype, controlId)
{


string connstring = "......";
OleDbDataAdapter da = new OleDbDataAdapter
DataTable dt = new DataTable();
OleDbConnection con = new OleDbConnection(connstring);
con.Open();
da = new OleDbDataAdapter(qry, connstring);
dt = new DataTable();
da.Fill(dt);
switch(controltype)
{
 case DropDownList:
      ......
      ......
 break;

case GridView:
      ......
      ......
break;
}

有人能告诉我如何在这个函数中传递Controltype和controlId吗。

以下是您的方法:

 protected void Page_Load(object sender, EventArgs e)
{
    LoadData(ddlList, ddlList.ID);
    LoadData(chkBxList, chkBxList.ID);
}

void LoadData(WebControl control, string id)
{
    string typeName = control.GetType().Name;
    switch (typeName)
    {
        case "DropDownList":
                //do something here
            break;
        case "CheckBoxList":
            //do something here
            break;
    }
}
我的HTML代码中有一个复选框列表和下拉列表,如下所示:

 <asp:CheckBoxList ID="chkBxList" runat="server">
  </asp:CheckBoxList>
  <asp:DropDownList ID="ddlList" runat="server"/>
希望这有帮助…

尝试以下代码:

DropDownList Ll = new DropDownList();
Ll = (DropDownList)control;

嗨,Sajoshi,这似乎起作用了。但有一点小小的变化,上面的函数LoadData位于一个单独的类文件中,因此我在向控件添加项时遇到了一个问题。我需要写control.Items.Addlist。但它并没有给人智慧的感觉。我能知道另一种向列表中添加项目的方法吗。或者为什么它不允许我添加项目?我猜控件并不是一个下拉列表。这和OP的问题有什么关系?