单击按钮时信息消失

时间:2010-07-13 17:51:50

标签: asp.net listview

我有一个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;
        }

2 个答案:

答案 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之前被反弹?如果是这样,它将消除用户输入的任何值。