for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {}这是外部循环,我想通过自动生成的Button将其所在行的i传入事件进行处理..嗯嗯,动态生成是没有问题了,目前问题就是Button不听使唤啊..纠结了俩小时了..

解决方案 »

  1.   

    自己顶...现在遇到的问题是:添加的Button按钮添加事件后点击每次都会刷新页面,刷新后动态生成表格不见了..
      

  2.   

    把i记到button的ID里,在 bt_02_Click事件里通过(sender as Button) 的ID来获取id的值
      

  3.   


    试过了,点击按钮后还是会刷新页面,然后自动生成的Table也没了..
    这是修改后的代码:
                Panel panel1 = new Panel();
                panel1.Visible = true;
                Button bt_01 = new Button();
                bt_01.Command += new CommandEventHandler(this.bt_01_Click);
                bt_01.ID = i.ToString();
                bt_01.Text = "显示";
                bt_01.CommandName = "bt_01_Click";
                bt_01.CommandArgument = i.ToString();
                panel1.Controls.Add(bt_01); protected void bt_01_Click(object sender, EventArgs e)
        {
            //获得传递的参数:按钮所在的表格的行数..
            Button bt_01 = sender as Button;
            int i = Convert.ToInt32(bt_01.ID);

            Response.Write("aaaaaaaaaaa");
            ((Panel)ilist.Rows[i].Cells[5].Controls[0]).Visible = false;
            ((Panel)ilist.Rows[i].Cells[5].Controls[1]).Visible = true;
        }
      

  4.   

    那你就在pageload里面写上动态加载表格的方法啊。推荐生成html控件用js加事件
      

  5.   


    嗯,最开始就是用的button.click+=,也不行的..我觉得问题主要是在点击按钮后刷新页面表格不见了这里..
      

  6.   


    加过的,页面是这样的,主要是点击几个按钮后自动生成的表格内容及大小是不一样的,
    所以用了!ispostback
    pageload里面代码如下: protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Cookies["YHYX"] != null && Request.Cookies["YHYX"].Value != "")
            {            string sql_str = string.Format("SELECT GSMC,ZHYE,DKJF,KYYE FROM YH_GS WHERE GSYX='{0}'", Request.Cookies["YHYX"].Value);
                DataSet ds = WebFunction.dataSet(sql_str);            if (ds.Tables[0].Rows[0]["GSMC"] != null)
                {
                    Lb_gsmc.Text = ds.Tables[0].Rows[0]["GSMC"].ToString().Trim();
                }
                else
                {
                    Lb_gsmc.Text = "您还未填写您的公司信息..";
                }            Lb_gsyx.Text = Request.Cookies["YHYX"].Value;
                Lb_zhye.Text = ds.Tables[0].Rows[0]["ZHYE"].ToString().Trim();
                Lb_kyye.Text = ds.Tables[0].Rows[0]["KYYE"].ToString().Trim();
                Lb_dkjf.Text = ds.Tables[0].Rows[0]["DKJF"].ToString().Trim();            if (!IsPostBack)
                {
                    string sql_str1 = string.Format("SELECT ZBJJ,ZXYS,ZBLX,XMLX,ZXMJ,FPFY,FYZT,FBSJ,LXDH,XM,ZBYQ FROM IFO_ZHAOBIAO WHERE FPGSYX='{0}'", Request.Cookies["YHYX"].Value.ToString().Trim());
                    Create_Table(sql_str1);
                }
            }
        }我把if (!IsPostBack)去掉之后貌似能用了,但是上面按钮点击每次加载的表格都是一样的了,纠结..ps:javascript我很菜的啦..
      

  7.   

    看来我要恶补下js代码了..这个方法应该可以实现的,无奈..js基础太差..
      

  8.   

    为什么不可以呢? 
    click事件可以响应AJAX的你要做更新没问题
    有问题贴出来
      

  9.   

    应该用客户端的JS来作这种在客户端的显示开关功能。如果用服务器控件,自然容易出现这种现象,除非你把在客户端动态操作的行为提交给服务器进行处理,那就没必要地麻烦了。用客户端JS做这个是很容易的,如果你们有专门负责前台JS的,让他做就是了。
      

  10.   

    pageload里面代码如下: protected void Page_Load(object sender, EventArgs e)
        {
            if (Request.Cookies["YHYX"] != null && Request.Cookies["YHYX"].Value != "")
            {            string sql_str = string.Format("SELECT GSMC,ZHYE,DKJF,KYYE FROM YH_GS WHERE GSYX='{0}'", Request.Cookies["YHYX"].Value);
                DataSet ds = WebFunction.dataSet(sql_str);            if (ds.Tables[0].Rows[0]["GSMC"] != null)
                {
                    Lb_gsmc.Text = ds.Tables[0].Rows[0]["GSMC"].ToString().Trim();
                }
                else
                {
                    Lb_gsmc.Text = "您还未填写您的公司信息..";
                }            Lb_gsyx.Text = Request.Cookies["YHYX"].Value;
                Lb_zhye.Text = ds.Tables[0].Rows[0]["ZHYE"].ToString().Trim();
                Lb_kyye.Text = ds.Tables[0].Rows[0]["KYYE"].ToString().Trim();
                Lb_dkjf.Text = ds.Tables[0].Rows[0]["DKJF"].ToString().Trim();            if (!IsPostBack)
                {
                    string sql_str1 = string.Format("SELECT ZBJJ,ZXYS,ZBLX,XMLX,ZXMJ,FPFY,FYZT,FBSJ,LXDH,XM,ZBYQ FROM IFO_ZHAOBIAO WHERE FPGSYX='{0}'", Request.Cookies["YHYX"].Value.ToString().Trim());
                    Create_Table(sql_str1);
                }
            }
        }
      

  11.   


    3Q..我在想我也必须好好学学js了..
      

  12.   

    3Q啦..我先把目前的问题解决了再去试试..我哭,AJAX才刚开始看呢..
      

  13.   


    问题应该解决了吧?这个是很简单的.做web开发的,js是一定得学的.不要求精通,但至少得熟悉