2010-10-08 65 views
0

让我解释一下这个案例;从服务器端获取js生成控件的值

在asp.net页面上,我有一个中继器,它会生成<tr> s和<td> s。

在客户端,我有一个js函数,它将行添加或删除到中继器生成表中。

问题是,在这个函数中,我不会生成一个简单的行,一个文本框(我必须在服务器端获取它的值)也会生成。

有没有什么办法来获得客户端生成的控件的价值?

+2

AFAIK,而不是在整个txtFoo.Text方式。提交页面时,您必须通过Request.Form集合访问它们。 – RPM1984 2010-10-08 07:21:08

回答

0

对于这个话题感兴趣的人,Request.Form解决了我的问题。

下面是代码

名称属性格式的图案是例如:name="txtReturnCause_56"

Dictionary<int, string> ReturnCauses = new Dictionary<int, string>(); 

      foreach (var key in Request.Form.AllKeys) 
       if (key.StartsWith("txtReturnCause")) 
       { 
        int _key = key.Split(char.Parse("_"))[1].ToInt(); 
        string value = Request.Form[key]; 
        ReturnCauses.Add(_key, value); 
       } 
+0

也许我应该发表我的评论作为答案。 :)无论如何,很高兴它工作。 – RPM1984 2010-10-08 10:12:56

+1

请注意,@ RPM1984帮助您找到解决方案。实际上,不认可某人的帮助 – Mouhannad 2010-10-08 13:08:53

+0

并不是很好,我通过投票发布了他在我的问题下发布的评论,尽了我最大的努力。希望他回答了,而不是评论。 无论如何,谢谢@ RPM1984为您带路 – Batu 2010-10-08 17:29:34

0

您可以使用AJAX建立客户端和服务器端之间的连接。您可以尝试THIS或阅读THIS文章。

+0

这不会帮助。这些链接是通用的“使用AJAX”。他不需要从服务器“检索”值,他需要从服务器访问动态创建的HTML元素。 – RPM1984 2010-10-08 07:22:16

0

乍一看,我会说你可以写一个AJAX请求发送到服务器的文本框的内容,并采取相应的行动。

请注意,在页面生成周期内,它永远不能与服务器交互。