如何在函数中传递asp.net服务器控件类型?
我正在类文件中编写一个函数,该函数连接到数据库并加载数据。我想将查询、asp.net控件类型和控件id传递给函数,这样当我调用函数时,它可以根据控件类型加载数据,我将为每个控件类型编写一个切换案例。像这样的事情:如何在函数中传递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
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的问题有什么关系?