| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1210 人关注过本帖
标题:C#自动生成控件问题
只看楼主 加入收藏
八方科技
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2010-9-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
C#自动生成控件问题
一个一直以来很困扰的问题,也让我很头疼的问题,百度了不知道几十年也没有百度个结果出来.现在简单描述出来,希望高手能给予赐教,本人在这里先行感谢了。

    C# 自动生成控件问题。

    假设:点击按钮A,会根据数据库内数据自动生成5个radiobutton,点击自动生成的每一个radiobutton还会根据每个radiobutton的ID的不同加载数据库里不同的东西,比如,点击radiobotton_2会加载radiobotton_2对应的数据内容并加载一个数值到一个textbox中,修改textbox中的值,然后点击按钮b,会修改radiobutton_2对应的数据库里的东西。现在,莫名其妙的问题出现了,点击radiobutton_1和另外四个radiobutton会产生不一样的效果。当然点击每一个radiobutton的时候还是会按照其ID的不同加载数据库里的东西.可是当修改textbox里的东西,再点击按钮b,保存的时候,就不一样了,

    点击按钮b的时候,如果刚才点击的是radiobutton_1,还是会重新加载一次radiobutton_1对应的数据库里的东西,而其他的radiobutton不会再加载一遍,这也就导致了,如果选择的是radiobutton_1,即使修改了textbox里的东西,点击按钮b,保存的话,也不会更新数据库的数值,其他的radiobutton就可以.更新保存,不知道对我的描述够不够透彻!如果有兴趣的可以直接和我联系.
qq:334746869
搜索更多相关主题的帖子: 控件 自动 
2010-09-25 17:22
八方科技
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2010-9-25
收藏
得分:0 
自己顶上去!
2010-09-27 16:46
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:10 
加载控件的代码放在page_load里,在这段代码外面加if(!IsPostBack){}

飘过~~
2010-09-27 17:50
八方科技
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2010-9-25
收藏
得分:0 
多谢楼上的回答,但是你的方法不对,这样设置了以后,点击radiobutton按钮的时候,就不会再加载数据库里的数据了
2010-09-28 11:45
bygg
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:乖乖的心中
等 级:版主
威 望:241
帖 子:13555
专家分:3076
注 册:2006-10-23
收藏
得分:0 
把你的代码放出来吧

飘过~~
2010-09-28 12:01
saitor
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:5
帖 子:373
专家分:1520
注 册:2009-5-18
收藏
得分:10 
radiobutton_1这个看看有没有把AUTOPOSTBACK属性设为TRUE,把你事件绑定代码放出来。
2010-09-28 16:12
八方科技
Rank: 2
等 级:论坛游民
帖 子:5
专家分:20
注 册:2010-9-25
收藏
得分:0 
  //加载产品列表信息
        private void JIAZAIchanpin(int xiaolei)
        {
           
            this.PanelPINFO.Controls.Clear();
            DataBase db = new DataBase();
            string sql = "select * from product where product_t=" + xiaolei;
            DataTable dt = db.GetDataTable(sql);
            if (dt.Rows.Count > 0)
            {
                this.PanelPINFO.Controls.Clear();
                RadioButton[] rpn = new RadioButton[dt.Rows.Count];
                for (int i = 1; i < dt.Rows.Count; i++)
                {
                    rpn[i] = new RadioButton();
                    rpn[i].Text = dt.Rows[i]["product_n"].ToString();
                    rpn[i].ID = "p" + dt.Rows[i]["product_id"].ToString();
                    rpn[i].GroupName = "pro";
                    rpn[i].AutoPostBack = true;
                    rpn[i].CheckedChanged += new EventHandler(rpn_CheckedChanged);
                    PanelPINFO.Controls.Add(rpn[i]);
                }
            }
        }
 //点击自动生成的商品列表里面的任意一个商品名称
        private void rpn_CheckedChanged(object sender, EventArgs e)
        {
            RadioButton rb = (RadioButton)sender;
            Session["pmpid"] = rb.ID.ToString().Substring(1);
            DataBase db2 = new DataBase();
            string sql2 = "select * from product_info where product_id=" + Convert.ToInt32(Session["pmpid"]);
            DataTable dt2 = db2.GetDataTable(sql2);
            DDLsmalltype.SelectedValue = dt2.Rows[0]["product_t"].ToString();
            Txtcount.Text = dt2.Rows[0]["product_count"].ToString();
            Txtpdescribe.Text = dt2.Rows[0]["product_d"].ToString();
            Txtpname.Text = dt2.Rows[0]["product_n"].ToString();
            Txtsellprice.Text = dt2.Rows[0]["product_sell_price"].ToString();
            Imgproduct.ImageUrl = dt2.Rows[0]["product_i"].ToString();
            Txtyjcount.Text = dt2.Rows[0]["product_yjcount"].ToString();
            Txtzhibao.Text = dt2.Rows[0]["product_zhibao"].ToString();
            DDLdanwei.SelectedValue = dt2.Rows[0]["product_danwei"].ToString();
            

        }
//对产品信息进行更新,相当于点击按钮B
        protected void BtnUpdate_Click(object sender, EventArgs e)
        {
            Productcs pcs = new Productcs();
            pcs.productname = Txtpname.Text.ToString();
            pcs.productid = Convert.ToInt32(Session["pmpid"]);
            pcs.productt =Convert .ToInt32 (DDLsmalltype .SelectedValue );
            pcs.product_sellp =Convert.ToDouble(Txtsellprice .Text.ToString ());
            pcs.product_yj = Convert.ToInt32(Txtyjcount.Text.ToString());
            pcs.producti = "~/productimage/" + Session["pmpid"].ToString() + ".jpg";
            pcs.productd = Txtpdescribe.Text.ToString();
            pcs.product_danwei = Convert.ToInt32(DDLdanwei.SelectedValue);//数量单位
            try
            {
                pcs.product_zhibao = Convert.ToInt32(Txtzhibao.Text.ToString());//质保月份
            }
            catch { }
            if (FUimage.FileName != "")
            {
                try
                {
                    string fileadress = Server.MapPath("~//productimage//") + Session["pmpid"].ToString() + ".jpg";
                    File.Delete(fileadress);
                }
                catch { }
                imagename = Session["pmpid"].ToString();
                UpdateImage();
            }
            bool suc = pcs.UpdateProduct(pcs);
            if (suc)
            {
                Session["pmpid"] = null;
                Session["pmtid"] = null;
                Response.Write("<script>alert('商品信息更新成功!');window.location.href ='productmanage.aspx'</script>");
            }
            else
            {
            }
        }
2010-10-02 13:26
快速回复:C#自动生成控件问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021089 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved