【问题标题】:Get values of js generated controls, from server side从服务器端获取 js 生成的控件的值
【发布时间】:2010-10-08 07:14:16
【问题描述】:

让我解释一下这个案子;

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

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

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

有什么方法可以获得客户端生成的控件的价值?

【问题讨论】:

  • AFAIK,而不是整个 txtFoo.Text 方式。提交页面时,您必须通过 Request.Form 集合访问它们。

标签: javascript asp.net repeater


【解决方案1】:

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

【讨论】:

  • 那无济于事。这些链接是通用的“使用 AJAX”。他不需要从服务器“检索”值,他需要从服务器访问动态创建的 HTML 元素。
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    对于对这个话题感兴趣的人,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);
                    }
    

    【讨论】:

    • 也许我应该发表我的评论作为答案。 :) 很高兴它仍然有效。
    • 请提及@RPM1984 帮助您找到了解决方案。不承认别人的帮助是不好的
    • 实际上,我尽我所能对他在我的问题下发表的评论进行投票。希望他回答而不是发表评论。无论如何,感谢@RPM1984 的领导
    • 没问题@Batu。很高兴你把它整理好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 2015-06-29
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2021-11-07
    相关资源
    最近更新 更多