我有一个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;
}
答案 0 :(得分: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控件在PostBack上有我的数据。
您是否在ListView周围使用UpdatePanel? FileUpload控件与UpdatePanels不兼容。
请参阅:
FileUpload control inside an UpdatePanel without refreshing the whole page?
和
http://msdn.microsoft.com/en-us/library/bb386454.aspx#UpdatePanelCompatibleControls
答案 1 :(得分:0)
ListView
控件是否在PostBack上触发SaveFile
之前被反弹?如果是这样,它将消除用户输入的任何值。