/// <summary>
/// 生成Tables
/// </summary>
/// <param name="varDt"></param>
private void GenerateTables(DataTable varDt)
{
if(varDt.Rows.Count == 0)
{
HtmlTableRow tr = new HtmlTableRow();
tr.Align = "Center";
HtmlTableCell trCell = new HtmlTableCell();
trCell.InnerHtml = "<FONT face=\"宋体\" color=\"red\">当前用户没有议价类型的品种分类!</FONT>";
tr.Cells.Add(trCell);
this.table_Class.Rows.Add(tr);
return;
} foreach(DataRow dr in varDt.Rows)
{
//动态控件
HtmlTable tb = new HtmlTable();
HtmlTableCell cellName = new HtmlTableCell();
HtmlTableCell cellTime = new HtmlTableCell();
HtmlTableCell cellButton = new HtmlTableCell();
HtmlTableCell cellContent = new HtmlTableCell();
HtmlTableRow rowClassName = new HtmlTableRow();
HtmlTableRow rowContent = new HtmlTableRow();

//动态控件属性
cellName.Align = "Left";
cellName.Attributes.Add( "style","BORDER-RIGHT-STYLE: none" );
cellName.Width = "30%";
cellName.BgColor = "#ece9d8";

cellTime.Align = "Left";
cellTime.Width = "50%";
cellTime.Attributes.Add( "style","BORDER-RIGHT-STYLE: none" );
cellTime.BgColor = "#ece9d8"; cellButton.Align = "Center";
cellButton.BgColor = "#ece9d8"; tb.Border = 0;
tb.CellSpacing = 1;
tb.Width = "100%";
tb.CellPadding = 2;


//赋值
cellName.InnerText = "品种分类名称:  " + dr["PCLASS_NAME"].ToString(); if(dr["BARGAIN_TIME_START"].ToString() == "" || dr["BARGAIN_TIME_START"].ToString() == "" )
{
cellTime.InnerHtml = "<FONT face=\"宋体\" color=\"red\">该品种分类议价报价时间尚未设定!</FONT>"; Button btn = new Button();
btn.ID = dr["ID"].ToString();
btn.Text = "不能进入";
btn.Enabled = false;
cellButton.Controls.Add(btn);
}
else
{
cellTime.InnerText = "议价开始时间:" + DateTime.Parse(dr["BARGAIN_TIME_START"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
cellTime.InnerText += "   结束时间:" + DateTime.Parse(dr["BARGAIN_TIME_END"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");

Button btn = new Button();
btn.ID = dr["ID"].ToString();
btn.Text = (dr["FLAG"].ToString() == "1") ? "进入商品包列表" : "浏览商品包列表";
btn.Click += new EventHandler(btn_Click);
btn.CommandName = (dr["FLAG"].ToString() == "1") ? "Enter":"View";
cellButton.Controls.Add(btn);
} rowClassName.Cells.Add(cellName);
rowClassName.Cells.Add(cellTime);
rowClassName.Cells.Add(cellButton); tb.Rows.Add(rowClassName); if(dr["CONTENT"].ToString() != "")
{
cellContent.InnerHtml = "报价原则:  " + dr["CONTENT"].ToString();
cellContent.ColSpan = 3;
rowContent.Cells.Add(cellContent);
tb.Rows.Add(rowContent);
}


//添加动态行
HtmlTableRow tr = new HtmlTableRow();
tr.Align = "Left";
HtmlTableCell trCell = new HtmlTableCell(); trCell.Controls.Add(tb);
tr.Cells.Add(trCell);
this.table_Class.Rows.Add(tr);

//添加分隔行
HtmlTableRow spliterRow = new HtmlTableRow();
HtmlTableCell spliterCell = new HtmlTableCell();
spliterCell.Height = "10px";
spliterRow.Cells.Add(spliterCell);
this.table_Class.Rows.Add(spliterRow);
}
} /// <summary>
/// 跳转到商品包列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Click(object sender, EventArgs e)
{
this.ViewState["PClass_Id"] = ((Button)sender).ID;
this.ViewState["ViewFlag"] = (((Button)sender).CommandName == "View") ? 1 : 0;
this.SetModule(this.ViewState);
PageConfiguration.TransferTo(this.Server,"Modules/BargainPriceMgr/CommercePackList.ascx");
}

解决方案 »

  1.   

    你可以先用服务器控件PANAL,然后PANAL.add(botton)
    OK?
    有问题再问
      

  2.   

    this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
    //这里是事件                                //这个是你的方法
    自己看着写吧,根据这个形式!
      

  3.   

    this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
      //    这是事件                             //这是方法名
    就这个形式,自己写吧!
      

  4.   

    Button btn = new Button();
    btn.ID = dr["ID"].ToString();
    btn.Text = (dr["FLAG"].ToString() == "1") ? "进入商品包列表" : "浏览商品包列表";
    btn.Click += new EventHandler(btn_Click);
    最后一句就是填加事件!
    private void btn_Click(object sender, EventArgs e)
    {
                        事件的具体内容自己写
    }
      

  5.   

    dim t as ContainerControl
    dim B as new Button
    t.controls.add(B)
    B.left=t.left+20
    b.top=t.top+20
    AddHandler B.Click,addressOf(Me.BtnClick)
      

  6.   

    luoshiming(uiooji),别玩了,人家brightheroes(闭关|路漫漫其修远兮,吾将上下而求索) 都说得这么清楚了,还要怎么解释,要不然你照抄做一下看看嘛。
      

  7.   


    http://blog.joycode.com/saucer/posts/19456.aspx
      

  8.   

    修改一下brightheroes(闭关|路漫漫其修远兮,吾将上下而求索)的 Button btn = new Button();//新建一个按钮
    btn.ID = Guid.NewGuid();//用guid值保证控件的id唯一
    btn.Text = "提交";
    btn.Click += new EventHandler(btn_Click);//给按钮赋点击事件,即点击后调用btn_Click(object sender, EventArgs e)
    Panel1.Controls.Add(btn);//把按钮添加到Panel中,这个Panel必须先放在页面上
    以上添加按钮成功点击按钮后的执行方法如下
    private void btn_Click(object sender, EventArgs e)
    {
      //事件的具体内容自己写
    }
      

  9.   

    this.topPanel.Controls.Add(Page.LoadControl("~/Inc/head1.ascx"));
    说明:
    将上面的语句写到一自定义函数中,此处topPanel为一HTMLCtrol且runat="Server"
    并且在页面初始化函数中调用即可
    InitializeComponent();
    base.OnInit(e);
    就在这两句之后
      

  10.   

    如果用VB.NET写的话, Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
          dim btn as new Button
          btn.text="确定"
          AddHandler btn.Click,addressOf btn_click
     End SubSub btn_click(ByVal sender As System.Object, ByVal e As System.EventArgs)
       response.write("hello")
    End Sub
    这样在点击了Button1后,会生成一个新的按钮btn,但是如果点击btn,那在触发btn_click事件之前就已经传到服务器了,然后页面重新刷新,btn这个按钮也没有了,更别说执行事件了.
    有什么办法可以执行这个btn_click啊?