如何在没有回发的情况下访问复选框的值?

时间:2010-06-16 22:42:59

标签: c# asp.net checkbox postback radgrid

我有一个控制用户访问应用程序的radgrid。有两列,“名称”列和复选框“访问”列,表示其当前的访问权限。复选框从数据库中填充。我想更改复选框以授予或拒绝访问我指定的用户。由于有很多用户我想进行多项更改并使用提交按钮将更改写入数据库。我不想回复每个复选框更改并等待页面“闪烁”。我的问题是,如果禁用复选框回发,当我单击提交时,复选框的值不会记录我所做的更改。我需要一种方法来访问复选框的当前客户端状态或一些解决方法来实现此目的。

提前致谢!

4 个答案:

答案 0 :(得分:1)

您可以使用javascript发送ajax请求,将更改保存到数据库而无需重新加载页面。然后你的更新马上发生,没有“眨眼”。

答案 1 :(得分:1)

感谢您的支持。事实证明,问题不在于客户端/服务器端可见性,而在于页面生命周期。我在PageLoad方法中刷新了radgrid并检查了Submit方法中复选框的值。我没有意识到PageLoad在提交之前已被执行,从而清除了我的选择。通过从PageLoad中删除RadGrid刷新,保留了复选框的当前值。

答案 2 :(得分:0)

如果将AutoPostBack设置为false,则会禁用回发,但它们仍应发布其当前值。

听起来更像是动态生成复选框的问题。

答案 3 :(得分:0)

不确定为什么你无法访问服务器端复选框的值,但回答你的问题“我需要一种方法来访问复选框的当前客户端状态或一些解决方法来实现这一点”..

您可以使用服务器标签并读取客户端复选框的值。

有关服务器标签的详细信息,请阅读此MSDN链接。