Hi I am trying to fire a javascript function from my .net radiobuttonlist but it does not fire. How do I fix this:

protected void  Page_Load(object sender, EventArgs e)
{
  this.rbl_NumberType.Attributes.Add("OnSelectedIndexChanged", "return NumberTypeChanged();");
}
...
function NumberTypeChanged()
{
alert("KJJK");
}
...
 <asp:RadioButtonList ID="rbl_NumberType" runat="server">
          <asp:ListItem Value="0" Selected="True">Somnething1</asp:ListItem>
          <asp:ListItem Value="1">Somerthing2</asp:ListItem>
        </asp:RadioButtonList>

If I replaces OnSelectedIndexChanged in the eventhandler to onClick it fires every time something is clicked but not on "OnSelectedIndexChanged".. What is wrong? onclick is not even an event in a radiobuttonlist but OnSelectedIndexChanged is..

Recommended Answers

All 7 Replies

why dont you use onclientclick attribute instead of coding it?

If I understand you right, then you're asking why I dont use the asp.net eventhandler, right? And the answer is that there is no reason to handle the data serverside when I can do it clientside. What I should use the data for is hiding fields and stuff like that. A second bonus is that I prevent the screen flickering while updating (Not using ajax because of a core 2.0 in production).

EDIT: I think I misunderstood what you ment. Can you give an example of what you ask?

<asp:RadioButtonList ID="RadioButtonList1" runat="server">
        <asp:ListItem  Text="someText" Value="someValue" onclick="alert('something1')"></asp:ListItem>
        <asp:ListItem  Text="someText2" Value="someValue2" onclick="alert('something2')"></asp:ListItem>
        </asp:RadioButtonList>

add this to your page you will see it opens a javascript alert box. your code is fine except for you should add javascript to the items not the container tag.

Thanks alot.. :) That works like a charm.. Though, it is displayed as a warning in vs2008. It says the attribute onclick is not a valid attribute for the element ListItem. Can you explain why I can use it, and especially to js calls. Normally they require server-side events, doesn't they?

Thanks alot.. :) That works like a charm.. Though, it is displayed as a warning in vs2008. It says the attribute onclick is not a valid attribute for the element ListItem. Can you explain why I can use it, and especially to js calls. Normally they require server-side events, doesn't they?

Ok, you asked a good question, the answer is the following :
in asp.net, your web server controls are processed at server and only pure html tags are sent to the client's browser. If web server control does not define any attributes named "onclick" it usually means that it will be sent to server as it is. But if onclick is defined, it is processed in the server and modified by it. For such cases there is usually "onclientclick" attribute that you can use for client-side functionality.

mark this thread as solved if it worked for you, also i will be motivated to answer your further questions if you add to my reputation :)

Arh.. I see.. That makes sence now. Thanks a lot :)

And ofcause.. Sorry that I forgot to do that..

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.