我有一个带有一个删除按钮的转发器,并将其绑定到这样的列表:
page_load()
{
list<person> myList = new list<person>()
myList.add(new person(Id="1",Name="n1"));
if(!isPostBack)
{
myList.add(new person(Id="2",Name="n2"));
myRepeater.DataSource = myList;
myrepeater.DataBind();
}
myRepeater.ItemCommand += myHandler;
}
void AdverticRp_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if(e.CommandName == "delete")
{
FileUploader fu = myrepeater.FindControl("fu") as FileUploadr;
// do somthing ** * but contorls is null refrence ***
}
}
转发器绑定成功并删除按钮正确引发但我想在myrepeater中获取控制但它们是空引用。我知道为什么。因为转发器没有在回发中绑定。我该怎么办?必须保存veiwsate中继器的状态? 我认为我绑定错了。但是正确的是什么? 我很感激所有的帮助。
答案 0 :(得分:1)
如果禁用viewstate,除非在每个页面加载时进行数据绑定,否则不会看到它们。您从viewstate获取值
检查link。
答案 1 :(得分:0)
从转发器项找到控件,而不是重复本身。试试这个:
void AdverticRp_ItemCommand(object source, RepeaterCommandEventArgs e)
{
if(e.CommandName == "delete")
{
RepeaterItem item = e.Item;
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem)
{
FileUploader fu = item.FindControl("fu") as FileUploader;
// do somthing here
}
}
}