Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当前上下文值未从Usercontrol呈现到.aspx页_Javascript_Asp.net_Ajax - Fatal编程技术网

Javascript 当前上下文值未从Usercontrol呈现到.aspx页

Javascript 当前上下文值未从Usercontrol呈现到.aspx页,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我有default.aspx页面和一个用户控件。 usercontrol具有以下用于多个文件上载的代码。 现在的问题是,当我添加一个文件进行上传时,当前的上下文文件没有给我任何值,我猜它仍然是零,因为它是从用户控件渲染的 我该怎么办 My UsercontrolUPLOAD.ASCX <%@ Control Language="C#" AutoEventWireup="true" CodeFile="FileUpload.ascx.cs" Inherits="FileUpload" %&g

我有default.aspx页面和一个用户控件。 usercontrol具有以下用于多个文件上载的代码。 现在的问题是,当我添加一个文件进行上传时,当前的上下文文件没有给我任何值,我猜它仍然是零,因为它是从用户控件渲染的

我该怎么办

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>
Default.aspx代码

    <%@ 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>

我怀疑可能是这一行:

<script type="text/javascript" src="_scripts/jquery-1.4.1.min.js"></script>

应该是:

<script type="text/javascript" src="/_scripts/jquery-1.4.1.min.js"></script>

问题在于您使用的是javascript和id名称

因此,当您在.aspx中拥有id为addfile的控件时,它将按原样呈现, 但当您在id为Fileuploader的用户控件中使用id为addfile的控件时, 而呈现的id为文件上传器\u addfile, 所以在java脚本中用正确的id更改id名称

要检查呈现id的名称,请在浏览器中打开页面,打开页面的源代码,找到元素并将id复制到java脚本中。
使用呈现的id名称更改java脚本中的所有id。

您是否意识到asp.net自asp.net 2.0以来就有一个可以使用的文件上载控件?“它会转到‘Default.aspx#’”?这是什么意思?您的错误是什么?不,这不重要,我想需要使用Javascript更改某些内容。也许您可以发布ascx文件的其余部分,以便我们可以看到标记?我签入的页面源名称是“addfile”:(
<script type="text/javascript" src="/_scripts/jquery-1.4.1.min.js"></script>