An Example
protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
    {
        Button btn = new Button();
        btn.ID = "btn1";
        btn.Click += new EventHandler(btn_Click);
        e.Item.Controls.Add(btn);
    }    void btn_Click(object sender, EventArgs e)
    {
        Response.Write("sfdfsa");
    }
多说一句每次回传页面都要绑定一次DataList

解决方案 »

  1.   

    可是我的效果不是所有的列表模版中都添加控件..
    而是根据条件,添加或者不添加...而且....
    需要在固定的位置上添加控件.....唉.....没有思路..希望高手可以帮我
    有带解决:::::DataBinder.Eval:“System.Data.DataRowView”不包含名称为 Re5 的属性
    产生了这样一个错误..不知道原因
      

  2.   

    http://www.cnblogs.com/blusehuang/archive/2007/04/26/728079.html
      

  3.   

    谢谢各位大侠的支持...可是我的问题没有解决...实在惭愧...
    .aspx---html
    <%#DataBinder.Eval(Container.DataItem,"Re3")%>

    <%# DataBinder.Eval(Container.DataItem,"UserName")%>
    &nbsp;&nbsp;&nbsp;&nbsp;
    <%#DataBinder.Eval(Container.DataItem,"Re4")%>
    :<%# DataBinder.Eval(Container.DataItem,"Addtime")%>
    现新添加一个数据绑定字段<%# DataBinder.Eval(Container.DataItem,"Re5")%>.aspx.csprivate void GetAnswer()
    {
    string strsql="select a.* from Answer as a where a.QuestionId="+this.Request["QuestionId"].ToString() +" order by a.addtime asc";
    DBCommon DB=new DBCommon();
    DataTable DT=DB.GetDataTableBySql(strsql);
    if(DT!=null&&DT.Rows.Count>0)
    {
    DataTable DTAnswer=new DataTable();DTAnswer.Columns.Add("Id",typeof(int));
    DTAnswer.Columns.Add("Title",typeof(string));
    DTAnswer.Columns.Add("Content",typeof(string));
    DTAnswer.Columns.Add("UserName",typeof(string));
    DTAnswer.Columns.Add("Addtime",typeof(Object));
    DTAnswer.Columns.Add("Re",typeof(string));
    DTAnswer.Columns.Add("Re2",typeof(string));
    DTAnswer.Columns.Add("Re3",typeof(string));
    DTAnswer.Columns.Add("Re4",typeof(string));
    DTAnswer.Columns.Add("Annex",typeof(string));//------------------------------------------------------新添加数据在DataTabel
    DTAnswer.Columns.Add("Re5",typeof(string));
    ///数据库中有一个字段flog,,定制为varchar类型.存储1和0
    //现在根据flog的数值来填充Re5的字符串
    ///代码:
    DTAnswer.Columns.Add("xiugai",typeof(string));//添加
    for(int i=0;i<DT.Rows.Count;i++)
    {
    DTAnswer.Rows.Add(DTAnswer.NewRow());
    DTAnswer.Rows[i]["Id"]=DT.Rows[i]["Id"].ToString();
    DTAnswer.Rows[i]["Title"]=DT.Rows[i]["Title"].ToString();
    DTAnswer.Rows[i]["Content"]=DT.Rows[i]["Content"].ToString();
    DTAnswer.Rows[i]["Addtime"]=DT.Rows[i]["Addtime"];
    if(Convert.ToBoolean(DT.Rows[i]["IsRepeatAsk"]))
    {
    DTAnswer.Rows[i]["Username"]=DT.Rows[i]["StudentName"].ToString();
    DTAnswer.Rows[i]["Re"]="再次提问学生";
    DTAnswer.Rows[i]["Re2"]="提问内容";
    DTAnswer.Rows[i]["Re3"]="提问人";
    DTAnswer.Rows[i]["Re4"]="提问时间";
    }
    else
    {
    DTAnswer.Rows[i]["Username"]=DT.Rows[i]["TeacherName"].ToString();
    DTAnswer.Rows[i]["Re"]="答疑老师";
    DTAnswer.Rows[i]["Re2"]="回答内容";
    DTAnswer.Rows[i]["Re3"]="回答人";
    DTAnswer.Rows[i]["Re4"]="回答时间";}
    if(Convert.ToInt32(DT.Rows[i]["Annex_FileSize"])>0)
    {
    DTAnswer.Rows[i]["Annex"]="<a href='ReadAnswerAnnex.aspx?Id="+DT.Rows[i]["Id"].ToString()+"' target=\"_blank\">"+DT.Rows[i]["Annex_Name"].ToString()+"</a>";
    }
    else
    {
    DTAnswer.Rows[i]["Annex"]="无附件";
    }
    //------------------------------------------------------------------
    if(Convert.ToInt32(DT.Rows[i]["flog"])>0)
    {
    DTAnswer.Rows[i]["Re5"]="<a href='Readd.aspx?Id="+DT.Rows[i]["Id"].ToString()+"' target=\"_blank\">"+DT.Rows[i]["Annex_Name"].ToString()+"</a>";
    }
    else
    {
    DTAnswer.Rows[i]["Re5"]="";
    }
    //--------------------------------------------------
    }
    this.DataList1.DataSource=DTAnswer.DefaultView;this.DataList1.DataBind();
    }}
    可是编译之后..出现
    DataBinder.Eval:System.Data.DataRowView不包含名称为"Re5"的属性请知道和解决过这样类似问题的大侠们,,出出主意亚....多谢!!!!!