The first difference between ASP.net and other web technologies that it has its own web controls which sometimes map to standard HTML controls, so sometimes what you see in ASP.net as a control doesn't mean that it will be rendered as one control in the final HTML which means that Javascript can't deal with it directly as it does with basic control.
Taking the ASP.net Calendar control as an example, in ASP.net you use it as one control just drag it and drop it in the page and boom! you have a full functional calendar, but in reality this calendar renders as a Table with rows and columns and links and also lots of Javascript, so you can't expect that you will deal with it as a calendar in the Javascript side, this also applies to Repeater, Grid, DataList ... etc The second difference is that even with asp.net server controls that maps directly to standard HTML controls like TextBox or Button, the asp.net runtime changes the control Id's so if placed a code like this in your ASP.net page directly <asp:TextBox ID="myTextBox" runat="server"></asp:TextBox> the rendered equivalent HTML will look like this <input type="text" id="myTextBox" name="myTextBox"/> As you can see the asp:TextBox id is the same as the input text id which is "myTextBox", but watch out, if you put the previous asp:TextBox in a UserControl instead of adding it directly to the page, and then added the UseControl to the page like this lets name our usercontrol "MyControl" <uc1:MyControl ID="MyControl1" runat="server" /> the rendered equivalent HTML will look like this <input type="text" id="MyControl1_myTextBox" name="MyControl1$myTextBox"/> As you can see the rendered input field Id is not "myTextBox" but it is a combination of the usercontrol id and the textbox id separated by underscore "_" and the name of the control is similar but separated by dollar sign "$". So that's why you will face some difficulties when you try to use document.getElementById on the "myTextBox" because the name is not known until the page renders.


No comments:
Post a Comment