2010-01-03 28 views
1

到目前为止,我已经看到(并且正在使用以下)脚本来根据另一个控件显示/隐藏div或其他控件在ASP.NET控制由jQuery启用/禁用的ASP.NET依赖控件的初始启用状态

$('[id$=myRadio_0]').click(function() { $('[id$=myDiv]').show(); }); 

$('[id$=myRadio_1]').click(function() { $('[id$=myDiv]').hide(); }); 

,当然还有,我在HTML DIV像

<div id="myDiv" runat="server" visible="false"> 

,当用户选择单选按钮列表的任一选项工作正常。

但是,当我在后台代码的Page_Load上为该radiobuttonlist赋值1或yes时,这不是(也可能不是)被jQuery捕获,并且即使控件具有值是/ 1。

那么,我是否需要在后面的代码中设置该div的可见性,或者在jQuery中为代码背后的主控制设置值之后强制扫描这些依赖项?

回答

1

几件事你可以做。

1)将您的div更改为Panel服务器控件(<asp:Panel id="myDiv" runat="server">),ID为“myDiv”。然后在后面的代码中,当您将单选按钮设置为1时,您还可以设置面板控件的可见性。你当前的jQuery代码仍然可以工作。

2)编写另一行jquery来测试页面加载时的div可见性。喜欢的东西,

if ($('[id$=myRadio_0]').val() == 1 && $('[id$=myDiv]:hidden') 
    { 
     $('[id$=myDiv]').show(); 
    } 

个人而言,我会去的选项1,因为你已经在代码隐藏设置您的表单的状态处理,我不会的“设置”代码分裂成两个客户端和服务器代码。

+0

谢谢womp。我把容器作为div而不是asp:Panels,就像你提到的那样,我选择了1 ...看起来更优雅。我只是希望有更好的方法。谢谢! – GR7 2010-01-04 03:30:22