0

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

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

4

2 回答 2

1

如果您禁用视图状态,除非您在每次页面加载时进行数据绑定,否则您将看不到它们。您正在从视图状态中获取您的值

检查链接

于 2013-07-01T11:28:44.970 回答
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
        }
    }
 }
于 2013-07-01T11:27:31.230 回答