Current context value is not rendered from Usercontrol to .aspx page

i have default.aspx page and one user control. usercontrol is having following code for multiple file uploads. now the problem is when i add a file for upload that current context file is not giving me any value it is still zero i guess because it is rendering from user control.

what should i do?

My Usercontrol UPLOAD.ASCX

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="FileUpload.ascx.cs" Inherits="FileUpload" %>
<script type="text/javascript" src="_scripts/jquery-1.4.1.min.js"></script>    
<script type="text/javascript">
    var i = 1;
    $(document).ready(function () {
        $("#addfile").click(function () {
            $("#dvfiles").append("<input name=" + i + "fu type=file /><a href=#>remove</a><br>");
            i++;
        });

        $("#dvfiles a").live('click', function () {
            $(this).prev("input[type=file]").remove();
            $(this).remove();
        });
    });

    $(document).submit(function () {
        var flag = true;
        $("#dvfiles input[type=file]").each(function () {
            if ($(this).val() == "") {
                $(this).css("background", "Red");
                flag = false;
            }
        });
        return flag;
    });        
</script>

<div id="Fileuploader">
<a href="#" id="addfile">Attach a file..</a><br />
<asp:Label ID="lblMessage" runat="server"></asp:Label><br />
<asp:Button ID="btnUpload" runat="server" Text="Upload"
    onclick="btnUpload_Click" />
</div>

UPLOAD.ASCX.CS

protected void btnUpload_Click(object sender, EventArgs e)
{
    try
    {
        HttpFileCollection filecolln = Request.Files; 
        //here i don't get values of current files.
      // this is zero. because of this following if condition failed 
       //please help here
        if (filecolln.Count > 0)
        {
            for (int i = 0; i < filecolln.Count; i++)
            {
                HttpPostedFile file = filecolln[i];
                if (file.ContentLength > 0)
                {
                    file.SaveAs(ConfigurationManager.AppSettings["FilePath"] + System.IO.Path.GetFileName(file.FileName));
                }
            }
            lblMessage.Text = "Uploaded Successfully!";
        }
        else
        {
            lblMessage.Text = "No files selected!";
        }

    }
    catch (Exception ex)
    {
        lblMessage.Text = ex.Message;
    }
}

Default.aspx code

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"    
    Inherits="_Default" %>
    <%@ Register TagPrefix="ucFileuploader" tagName="Fileuploader" src="FileUpload.ascx"    %> 

   <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <ucFileuploader:Fileuploader ID="Fileuploder" runat="server" />
    </div>
    </form>
</body>
</html>

Answers


The problem is that you are using javascript an id names.

so when you have control with id addfile in .aspx it is rendered as is, but when you have control with id addfile in user control with id Fileuploader, than the rendered id is Fileuploader_addfile, so change id name in java script with the proper id.

To chechk what is name of rendered id, open page in browser, open source of the page and find you element and copy id into java script. Change all ids in java script with rendered id names.


Need Your Help

Is there a NAnt task that will display all property name / values?

.net ant build build-automation nant

Is there a NAnt task that will echo out all property names and values that are currently set during a build? Something equivalent to the Ant echoproperties task maybe?

301 redirecting pagination with get variables

.htaccess mod-rewrite rewrite http-status-code-301

I'm trying to set 301 redirects on pages that have 'page=1' in the URL to stop duplicate content issues.

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.