2011-09-05 73 views
0

具体来说,我有一个ascx控件,让我们假设它注入javascript var x=5如何从ascx的代码隐藏中访问javascript变量?

ascx控件包含一个按钮,点击时会执行x ++;

x是那么6.

当有人把他们的网页上我的控制,并点击一个按钮,回发(按钮是自己),我想让他们在代码检索x的值背后。

有没有一种解决方案可以解决这个问题?我能想到的最接近的方法是在ascx中放置一个隐藏字段,并在更新后将值存储在隐藏字段中。然后在我的代码隐藏中,在回发时,我可以执行myControl.hiddenField.value来检索结果。

,因为我想知道是否有更好的方法我没有试过呢。此外,我不确定隐藏字段的更新值是否会在通过javascript更改时进行注册,尽管这是一篇文章,但我希望它是。

想法?

编辑:事实上,使用一个getter我可以躲起来的隐藏字段,只是允许值的直接访问...如果该解决方案是最好的...

回答

1

是的,你自己的答案是最好的一个......特别是你的编辑!表单域是这两层如何相互通信。你可能会调用一个ajax后有一些动态构建的GET/POST参数,但是这不会是什么更好的...

1

你的点子已经是你可以采取的最好的办法。我不认为你可以使用Timbo提出的Ajax请求选项,因为你的是一个ascx控件,可以以多种不同的形式放置,你如何确定是否会发送帖子或获取请求?

总之,你的方法很好,没有什么效率低下。

+0

嗨@Icarus,我只是真的想强调,没有任何其他选择......有时人们张贴关于AJAX,仿佛这是一些神奇的替代技术的发布!这就是说,我不明白为什么你不能在这个例子中做一个ajax后,你只需要确保它或者回到相同的父表单处理程序或任何其他专业的处理程序,可以处理该帖子和重新适当地提供局部视图。 – Timbo

+1

Hi @Timbo,那么现在每个包含控件的页面都必须有一个PageMethod来处理请求(我不认为我会这么做)?如果发布到另一个处理程序,那么如何将该值传回包含该控件的表单,我认为这是SLC试图执行的操作? SLC没有在做ASP.net MVC,至少我没有看到标签。 – Icarus

+0

嗨@Icarus - 抱歉,是的,我的头埋在MVC太久了,我完全在想我该怎么处理这个架构! :) – Timbo

相关问题