Reputation: 34407
I have a 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>
AS you may see second listitem is selected by default. But issue is, when my page is getting load dis()
is not getting called. I want to run dis()
on page load too.
I tried google, some blogs suggest the use of Page.RegisterStartupScript Method. But I dont exactly know what is the problem and why we should use this above mentioned method. I would appreciate if someone please tell me why this function is not getting called and how to call it.
Edit: I am giving Javascript code also, if it helps.
<script type="text/javascript">
function dis()
{
ValidatorEnable(document.getElementById('<%=RequiredFieldValidator32.ClientID%>'), false);
}
function en()
{
ValidatorEnable(document.getElementById('<%=RequiredFieldValidator32.ClientID%>'), true);
}
</script>
Upvotes: 2
Views: 8910
Reputation: 6085
Default list items are SET by default. They don't get CLICKED on page load to select them. So this is the reason the function defined for OnClick is not called.
You coud either include a script - Tag in that you call dis() or you could use RegisterStartupScript.
The script tag would look like:
<script type="text/javascript">
dis();
</script>
And would have to be included in the page's html source.
RegisterScriptControl does this internally. It also has the option to gather several startup script calls and renders them in a single script-tag.
Upvotes: 1
Reputation: 415600
You need to run the script when the page loads because no one has clicked your list item yet.
You should use Page.RegisterStartupScript vs <body onload="...">
to do this for three reasons:
<body onload="...">
script for something else. Upvotes: 0
Reputation: 2237
If you want to execute C# code on Server side on page load, overide
protected void Page_Load(object sender, EventArgs e)
If you want to execute JavaScript on page load, use "onLoad" in "<body>"
tag. like
<body onload="dis();">
Hope it helps.
Upvotes: 0
Reputation: 59451
dis()
is assigned to the onclick
- meaning it'll be called only when the list item is clicked on by the user. You can call dis()
from the onload
of the <body>
if you want.
Upvotes: 1