在回发中为数据绑定控件保存状态

时间:2013-07-01 11:16:15

标签: asp.net data-binding

我有一个带有一个删除按钮的转发器,并将其绑定到这样的列表:

 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中继器的状态? 我认为我绑定错了。但是正确的是什么? 我很感激所有的帮助。

2 个答案:

答案 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
        }
    }
 }