2010-07-13 65 views
1

我有一个ListView有一个FileUpload控件和每个ListViewItem中的按钮。
我在我的按钮上有一个OnClick事件,我尝试从FileUpload控件中提取信息,但是当我尝试访问控件时,所有设置的值都消失了(FileName等)。信息按钮点击消失

我在这里需要做什么改变来访问我刚才输入的信息?

  <asp:ListView ID="lv_Uploads" runat="server" OnItemDataBound="GetThumbs" EnableViewState="true" > 
       <LayoutTemplate> 
        <div id="itemPlaceholder" runat="server" /> 
       </LayoutTemplate> 
       <ItemTemplate> 
        <div style="width:500px;> 
         <asp:FileUpload runat="server" ID="fu_Upload" /> 
         <asp:Button ID="btn_Save" runat="server" Text="Save File" OnClick="SaveFile" /> 
         <br /> 
        </div> 
       </ItemTemplate> 
      </asp:ListView> 

后面的代码:

 protected void SaveFile(object sender, EventArgs e) 
     { 
      //This always evaluates to an empty string... 
      string myFile = ((FileUpload)((Button)sender).Parent.FindControl("fu_Upload")).FileName; 
     } 

回答

1

我测试你的ASPX提供的代码和以下为后面的代码:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!Page.IsPostBack) 
    { 
     lv_Uploads.DataSource = data; 
     lv_Uploads.DataBind(); 
    } 

} 
protected void SaveFile(object sender, EventArgs e) 
{ 
    //This always evaluates to an empty string... 
    string myFile = ((FileUpload)((Button)sender).Parent.FindControl("fu_Upload")).FileName; 
} 

protected void GetThumbs(object sender, ListViewItemEventArgs e) 
{ 

} 

protected IEnumerable<string> data = new string[] { "test1", "test2", "test3" }; 

FileUpload控件有数据为我上回发。

你是否在ListView周围使用UpdatePanel? FileUpload控件与UpdatePanels不兼容。

参见:

FileUpload control inside an UpdatePanel without refreshing the whole page?

http://msdn.microsoft.com/en-us/library/bb386454.aspx#UpdatePanelCompatibleControls

+0

尔加!!!!我正在使用更新面板。这可能是更新面板获得我的第20次。谢谢你的帮助! – 2010-07-13 19:34:25

+0

它也得到了我不止一次,这就是为什么我怀疑这可能是问题。 ;) – sgriffinusa 2010-07-13 19:45:49

0

SaveFileListView控制被反弹回发解雇?如果是这样,它将消除用户输入的任何值。

+0

不,我只上的DataBind'PageLoad'当'Page.IsPostBack' – 2010-07-13 18:31:38