【问题标题】:Information disappears on button click单击按钮时信息消失
【发布时间】:2011-03-15 11:23:03
【问题描述】:

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

我需要在这里做些什么不同的事情才能访问我刚刚输入的信息?

            <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;
        }

【问题讨论】:

    标签: asp.net listview


    【解决方案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 控件与 UpdatePanel 不兼容。

    见:

    FileUpload control inside an UpdatePanel without refreshing the whole page?

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

    【讨论】:

    • 呸!!!!我正在使用更新面板。这可能是更新面板让我第 20 次了。感谢您的帮助!
    • 它也让我不止一次,这就是为什么我怀疑这可能是这里的问题。 ;)
    【解决方案2】:

    ListView 控件是否在 SaveFile 被 PostBack 触发之前被反弹?如果是这样,它将清除用户输入的任何值。

    【讨论】:

    • 不,我只在PageLoad 上进行数据绑定,而!Page.IsPostBack
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多