Repeater中item如果有个textbox那说明每行都有个textbox,这就需要遍历赋值了。可以在页面pageload时遍历行用findcontrol进行赋值。
给个代码块,我这里是遍历一个下拉列表框,把数据源中的列给赋值。你可以换成文本框。
protected void RptNew_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.SelectedItem)
{
DataRowView rowv = (DataRowView)e.Item.DataItem;
DropDownList DListNewsIsShow = (DropDownList)e.Item.FindControl("DListNewsIsShow");
DListNewsIsShow.Items.FindByValue(rowv["isshow"].ToString()).Selected = true;
}
}
在 Repeater 的 ItemCommand 事件 或者 ItemDataBound事件里面写:
var txt = e.Item.FindControl("txtDemo") as TextBox;
protected void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
TextBox m_text = (TextBox )e.Item.FindControl("TextBoxID");
m_text .text = //赋值
}
一楼正解