C# button控件遍历并修改text的问题

meiwuyang 2015-11-05 05:16:37
我要遍历一个界面中的所有button控件,并根据数据库查询确定button的text的值,button的ID为Button1,Button2等一共四个,以下为代码,可以运行但是没有text的改变,请各位大牛不吝赐教。
protected void Page_Load(object sender, EventArgs e)
{
foreach (Control c in this.Controls)
{
if (c.GetType() == typeof(Button))
{
Button c_btn = c as Button;
for (int i = 1; i <= 4; i++)
{
if (c_btn.ID == "Button" + Convert.ToString(i))
{
MySqlConnection conn = new MySqlConnection(ConfigurationManager.AppSettings["dbconnectionstring"]);
conn.Open();
string sql = @"select count(*) from total_table where goods_shelf ='A" + i + "';";
MySqlCommand cmd = new MySqlCommand(sql, conn);
int goods_num = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
c_btn.Text = Convert.ToString(goods_num);
}
}
}
}
}
...全文
581 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
残影丶 2017-06-01
  • 打赏
  • 举报
回复
引用 7 楼 From_TaiWan 的回复:
是web程序么,可以用findcontrol啊
真的厉害了大兄弟!!!
残影丶 2017-06-01
  • 打赏
  • 举报
回复
引用 6 楼 meiwuyang 的回复:
将 foreach (Control c in this.Controls)改成 foreach (Control c in form1.Controls)就可以了
真的厉害了大兄弟!!!
南天空 2015-11-06
  • 打赏
  • 举报
回复
那就说明你的C里面没有值,遍历控件的方法不对,你看看控件是都在page上的吗?
秋的红果实 2015-11-05
  • 打赏
  • 举报
回复
是web程序么,可以用findcontrol啊
meiwuyang 2015-11-05
  • 打赏
  • 举报
回复
将 foreach (Control c in this.Controls)改成 foreach (Control c in form1.Controls)就可以了
meiwuyang 2015-11-05
  • 打赏
  • 举报
回复
引用 1 楼 xdashewan 的回复:
if (c_btn.ID == "Button" + Convert.ToString(i))应该不是ID而是Name属性吧,其他看上去貌似没啥错误,其实你断点跑一下马上就知道了
我逐步调试了一下,发现连第一个if判断都没有进去,这是怎么回事?
meiwuyang 2015-11-05
  • 打赏
  • 举报
回复
引用 3 楼 guonan198811 的回复:
sql语句查询出来的东西需要转化的, int goods_num = Convert.ToInt32(cmd.ExecuteScalar()); cmd.ExecuteScalar()你看看这个东西执行后有值没有,是什么类型的,一般查询出来的东西转成集合再取出来。你这块感觉不太对
我逐步调试了一下,发现连第一个if判断都没有进去,这是怎么回事?
南天空 2015-11-05
  • 打赏
  • 举报
回复
sql语句查询出来的东西需要转化的, int goods_num = Convert.ToInt32(cmd.ExecuteScalar()); cmd.ExecuteScalar()你看看这个东西执行后有值没有,是什么类型的,一般查询出来的东西转成集合再取出来。你这块感觉不太对
meiwuyang 2015-11-05
  • 打赏
  • 举报
回复
我试过name属性,可是显示错误“System.Web.UI.WebControls.Button”不包含“Name”的定义,并且找不到可接受类型为“System.Web.UI.WebControls.Button”的第一个参数的扩展方法“Name”(是否缺少 using 指令或程序集引用?) 不知是何缘故?
xdashewan 2015-11-05
  • 打赏
  • 举报
回复
if (c_btn.ID == "Button" + Convert.ToString(i))应该不是ID而是Name属性吧,其他看上去貌似没啥错误,其实你断点跑一下马上就知道了

110,572

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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