我有一个radiobox <asp:RadioButtonList CssClass="list" Style="width: 150px"
ID="rdo_RSD_ExcerciseRoT" runat="server"
Font-Bold="false" RepeatDirection="Horizontal" RepeatLayout="Table"
TextAlign="Left" >
<asp:ListItem Text="Yes" onclick="en();" Value="Y"></asp:ListItem>
<asp:ListItem Text="No" onclick="dis();" Value="N" Selected="True"></asp:ListItem>
</asp:RadioButtonList>
如您所见,默认情况下会选择第二个列表项。但问题是,当我的页面加载时dis()
没有被调用。我也希望在页面加载时运行dis()
。
我试过谷歌,一些博客建议使用 Page.RegisterStartupScript Method 。但我不知道问题是什么,为什么我们应该使用上面提到的方法。如果有人请告诉我为什么没有调用此函数以及如何调用它,我将不胜感激。
修改:如果有帮助,我也会提供Javascript代码。
<script type="text/javascript">
function dis()
{
ValidatorEnable(document.getElementById('<%=RequiredFieldValidator32.ClientID%>'), false);
}
function en()
{
ValidatorEnable(document.getElementById('<%=RequiredFieldValidator32.ClientID%>'), true);
}
</script>
答案 0 :(得分:1)
默认情况下,默认列表项为SET。他们没有在页面加载时点击以选择它们。所以这就是没有调用为OnClick定义的函数的原因。
你要么包含一个脚本 - 标记你调用dis(),或者你可以使用RegisterStartupScript。
脚本标记如下所示:
<script type="text/javascript">
dis();
</script>
并且必须包含在页面的html源代码中。
RegisterScriptControl在内部执行此操作。它还可以选择收集多个启动脚本调用,并将它们呈现在一个脚本标记中。
答案 1 :(得分:1)
dis()
已分配给onclick
- 这意味着只有在用户点击列表项时才会调用它。如果您愿意,可以从dis()
的{{1}}致电onload
。
答案 2 :(得分:0)
如果要在页面加载时在服务器端执行C#代码,请覆盖
protected void Page_Load(object sender, EventArgs e)
如果您想在页面加载时执行JavaScript,请在"<body>"
标记中使用“onLoad”。像
<body onload="dis();">
希望它有所帮助。
答案 3 :(得分:0)
<body onload="dis()">
</body>
进行。
答案 4 :(得分:0)
您需要在页面加载时运行脚本,因为还没有人点击您的列表项。
您应该使用Page.RegisterStartupScript vs <body onload="...">
执行此操作有三个原因:
<body onload="...">
脚本用于其他内容。