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
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
而是根据条件,添加或者不添加...而且....
需要在固定的位置上添加控件.....唉.....没有思路..希望高手可以帮我
有带解决:::::DataBinder.Eval:“System.Data.DataRowView”不包含名称为 Re5 的属性
产生了这样一个错误..不知道原因
.aspx---html
<%#DataBinder.Eval(Container.DataItem,"Re3")%>
:
<%# DataBinder.Eval(Container.DataItem,"UserName")%>
<%#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"的属性请知道和解决过这样类似问题的大侠们,,出出主意亚....多谢!!!!!