从ASP.Net自定义控件获取客户端价值

时间:2012-06-21 19:47:10

标签: asp.net svg custom-controls request.form

我遇到控件将其值从浏览器传回服务器时遇到问题。基本上,我需要的是一个LiteralControl,它可以被推送到页面上,由一些JavaScript修改,然后将其全部内容传回。

我在做什么:我正在使用SVG图像。我需要将任何预先初始化的值(显示元素/内容)发送到浏览器。然后用户可以通过JavaScript与图像交互。每当他们提交表单时,我都需要重新获取新的/修改过的图像。

我制作了一个输出SVG元素的自定义控件,并允许您设置自定义宽度,高度和视图框属性。它有一个可以为其提供内容的样式元素,以及一个脚本元素,您也可以为其提供一些内容。我为应该在浏览器上修改的所有属性设置了ScriptDescriptor。我构建了一个SvgImage.prototype和一个SvgImage.descriptors JavaScript类,并在JavaScript中注册了我的命名空间和类。我的JavaScript全部都在浏览器中,但控件没有添加到返回的Request.Form元素中。

有没有办法将控件添加到Request.Form元素而不创建隐藏字段并将内容转储到其中?

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,我不知道任何允许你这样做的本机ASP.NET控件。

发回服务器的所有表单信息必须(据我所知)包含在<input>控件中。 (我相信你知道,ASP.NET只能使用普通浏览器提供的标准表单处理。)

因此,我认为您正在考虑在回发之前将SVG信息转换为隐藏控件(隐身<textarea> / <asp:TextBox TextMode="Multiline"/>最有意义)。

另一种选择可能是使用AJAX,虽然如果你只想要回传时的信息,你可能会遇到麻烦的时间...所以我看不出它有多大用处(但只是提到它作为选项)。