高手求救,变量怎么转换为控件ID,如果不转,还有没有更好的方法

mailto520 2008-08-19 04:49:34
defalut.aspx中有两个DropDownList,ID分别为“ABC”,"ABD"
在defalut.aspx.cs中要将两个表中的某字段绑定要这个dropdownlist上,
表1的表名为A,字段为ABC,要绑定到ID为"ABC"的DropDownList上.
表2的表名为B,字段为ABD,要绑定到ID为“ABD”的DROPDOWNLIST 上

下面是我写的代码:
 protected void Page_Load(object sender, EventArgs e)
{
SelectBind("ABC", "A");
SelectBind("ABD", "B");
}

public void SelectBind(string FieldsName,string TableName)
{
SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["Connection"]);
con.Open();
string StrSql = "select "+FieldsName+" from "+TableName+"";
SqlCommand cmd = new SqlCommand(StrSql, con);
SqlDataReader sdr = cmd.ExecuteReader();
this.FindControl(FieldsName as DropDownList).DataSource = sdr;
this.FindControl(FieldsName as DropDownList).DataTextField = FieldsName;
this.FindControl(FieldsName as DropDownList).DataValueField = FieldsName;
this.FindControl(FieldsName as DropDownList).DataBind();
sdr.Dispose();
}


错误信息为:
编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0039: 无法通过内置转换将类型“string”转换为“System.Web.UI.WebControls.DropDownList”

源错误:



行 43: SqlCommand cmd = new SqlCommand(StrSql, con);
行 44: SqlDataReader sdr = cmd.ExecuteReader();
行 45: (FieldsName as DropDownList).DataSource = sdr;
行 46: this.FindControl(FieldsName as DropDownList).DataTextField = FieldsName;
行 47: this.FindControl(FieldsName as DropDownList).DataValueField = FieldsName;

...全文
30 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
pinhailinfeng 2008-08-19
  • 打赏
  • 举报
回复
类型转换下
sighforever 2008-08-19
  • 打赏
  • 举报
回复

DropDownList DropDwonControl = this.FindControl(FieldsName) as DropDownList;
DropDwonControl.DataSource = sdr;

这样?

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧