Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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
c#-访问jquery在c#方法中创建的元素_C#_Jquery_Dynamic_Html Lists - Fatal编程技术网

c#-访问jquery在c#方法中创建的元素

c#-访问jquery在c#方法中创建的元素,c#,jquery,dynamic,html-lists,C#,Jquery,Dynamic,Html Lists,在用户控件中,我有一个无序列表,其中包含显示可编辑文件数据的项 当加载页面或当控制元素(AJAX async file upload)执行其OnClient\u UploadComplete功能时,我使用隐藏字段中设置的JSON字符串在javascript中创建这些项 到目前为止,我拥有的一切都是可靠的:项目是在客户端创建的,我可以使用现有的隐藏字段更改任何值,并在需要时将数据传输回BL对象 我的问题是,在服务器端的“上传完成”功能中,我的服务器代码找不到任何由javascript创建的用于向新

在用户控件中,我有一个无序列表,其中包含显示可编辑文件数据的项

当加载页面或当控制元素(
AJAX async file upload
)执行其
OnClient\u UploadComplete
功能时,我使用隐藏字段中设置的JSON字符串在javascript中创建这些项

到目前为止,我拥有的一切都是可靠的:项目是在客户端创建的,我可以使用现有的隐藏字段更改任何值,并在需要时将数据传输回BL对象

我的问题是,在服务器端的“上传完成”功能中,我的服务器代码找不到任何由javascript创建的用于向新项目添加基本数据的动态创建项目

我肯定错过了什么。我从控件获得的值是
“/r/n”

我最好的猜测是我的c代码设置错误。在页面上,要查找ul,我有:

Control m_ulFileItems = m_fuPhotoUpload.FindControl("m_ulFileItems");

我将进行更多的loking,但这是使该控件正常工作的一个重要方面。

我不知道您如何能够在服务器端访问这些控件。但是,我建议您将它们的值从客户端传递到服务器,可能是这样的: $.ajax({ 网址:。。。, 类型:。。。, 数据:json格式控件中的ID和值 });

以下是一些更详细的信息: 如果这是HTML:

<div>
    <div id="placeHolder"></div>
    <input type="button" value="Submit" onclick="submit();" />
</div>

我通过以下方式添加了一些文本框:

    $(document).ready(function () {
        for (var idx = 0; idx < 10; idx++) {
            $('<input class="myInput" type="text" />').appendTo($('#placeHolder'));
        }
    });
$(文档).ready(函数(){
对于(var idx=0;idx<10;idx++){
$('').appendTo($('#占位符');
}
});
那么这应该是可行的:

    function submit() {
        var jsonInput = '{';
        var inputList = $(".myInput");

        for (var idx = 0; idx < inputList.length; idx++) {
            jsonInput = jsonInput + 'txt_' + idx + ': ' + $(inputList[idx]).val() + ',';
        }

        jsonInput = jsonInput.substring(0, jsonInput.length - 1);
        jsonInput = jsonInput + '}';
        alert(jsonInput);

        $.ajax({
            url: "WebForm1.aspx/HandleSubmitClick",
            data: jsonInput

        });
    }
函数提交(){
var jsonInput='{';
var inputList=$(“.myInput”);
for(var idx=0;idx
希望能有帮助

如果您不喜欢对服务器的Ajax调用,我可以建议您使用隐藏控件,并在转到服务器之前将该字符串放入隐藏控件中。然后,您将能够在服务器端获取该隐藏控件的值


无论如何,这是一个基本的想法-在客户端收集和准备数据,然后以某种方式发送到服务器端。

在页面中添加一个隐藏字段,在发回服务器之前,扫描列表中的所有项目,可能创建一个JSON对象,其中包含所创建项目的所有所需信息,并将隐藏字段值设置为这个JSON。现在,您应该能够获取该值并在C#中解析JSON,然后从那里处理它

据我所知,在我的javascript中创建时向它们添加runat=server不会使我的代码能够访问它们。我将测试它,尽管您是正确的,
runat=“server”
是一个服务器端属性,允许您的代码在控件发送到浏览器之前访问和操作它。补充说客户端什么也做不了。我已经找了一个小时了,看起来这几乎是不可能的。。我会看看这条路线和其他路线,我需要这个功能。如果你碰巧发现了什么,只需编辑你的答案,再详细一点。希望这将导致解决,这样我就可以标记一个答案,这基本上就是我在加载和保存函数的数据处理过程中所做的。我一直在使用这种方法只是为了将数据从客户端传递到服务器,并在对象之间传递,但服务器端代码和setter函数的索引必须添加到我的javascript中。我曾希望有一种方法可以轻松访问我在动态元素中设置的数据字符串,但我的结论是,这还没有得到支持。谢谢你的意见,这可能是我的正确答案