Although I'm a huge fan of Databound controls since ASP.Net 2.0 and have been using them a lot since learning them, I seem to have stumbled upon an unnoticed(or rather not cared about) issue that these controls seem to have.
I'm using ASP.Net 3.5 and the issue that I noticed is that when using Databound controls(such as Labels, HyperLinks) inside a Data-Control(such as Datalist, Gridview etc.), even if the value returned for one column is NULL, it is still rendered albeit as an empty tag.
For eg: I have a Datalist in which I have a Label whose value may or may not be NULL. Now there's no problem when the value is not NULL, the problem is when the value is NULL. Ideally, no HTML should be rendered for a controls that don't have any value, but in this case, the HTML(<span></span> in case of the Label) of the corresponding NULL valued control is still being rendered.
Now, as I said earlier that most people won't care about this as it isn't much of an issue, but if you consider the fact that this control may be enclosed in a hierarchy of parent controls, and then repeated many a times, this could significantly increase the HTML content(since the ID of your HTML content is based on the parent controls) without any Text added to maintain the Text/HTML ratio, thereby becoming a cause for the Search Engines to shy away from indexing your pages fully.
I couldn't find anything related to this matter anywhere else so I thought to bring it up here. Is this really an issue with databound controls or am I missing something here?
I'm using VS2010, where the automatically renders the menu items on an ASP.NET menu control in <ul> and and <li> tags with anchor and image tags--the image tags for the ImageURL reference that I specify for each MenuItem, which is great...
trying to get an id property into the img tag rendered for each menu item. Is there anyway to do this, so that I can use Jquery easily to access each of the items? The closest I can come to a unique identifier on each rendered img tag is the title property--which translates into the tooltip property on the control.
I have downloaded the latest version of AJAX toolkit (AjaxControlToolkit.Binary.NET35) and add to asp web page as I did many times before without any particular problem. However this time I'm experiencing unwanted results that make me want to through the computer into my neighbor's pool. The tab control is rendered with the following inline style:
I've a asp.net linkbutton inside asp.net repeater control which renders multiple link buttons. I want to set the style of each and every linkbutton dynamically.
<asp:RequiredFieldValidator ID="RequiredFieldValidatorOnlineID" runat="server" ControlToValidate="TextBoxOnlineID" ErrorMessage="Online ID is required.<br />" ToolTip="User Name is required." SetFocusOnError="True" Display="Dynamic" CssClass="validationerror"></asp:RequiredFieldValidator>
Rendered Server control code:
<span id="ctl00_ContentPlaceHolderSYLMainMaster_RequiredFieldValidatorOnlineID" title="User Name is required." style="display:none;">Online ID is required.<br />
I have tried the following to remove the style attribute with no luck:
I don't need and want the style attribute, how can I prevent it from being written into my code? It messes up the alignment of the error message with my textbox.
I have some javascript to iterate the divs in my web page. There is also a ReportViewer control. If I look at the HTML in FireBug in FireFox I can drill down to a div with an id of "oReportDiv". However, my javascript does not pick this up and if I view Source I cannot find it there either. It is the same story in Internet Explorer - I can find the div in the developer tools but not in the source.
The div is buried in nested iFrames and Framesets and all sorts of nasty looking stuff.
Am using datalist to create a kinsd of message board, in the back end am having two tables one for the parent comment , and other for the child comments
The data source is extracted by LINQ to SQL with the load option , so I get everthing when I debug on the code behind , and I can see all the fields each parent comment and the child comments.
the problem is with binding the data on the disply for example all the parent table fildes can be rendred without any problems:
<%# DataBinder.Eval(Container.DataItem, "comment1Parent") %>; "showing me the orginal post"
Problem here:
<%# DataBinder.Eval(Container.DataItem, "Childcomment") %> is not rendred and I got this error msg:
DataBinding: 'DataAccessLayer.Comment' does not contain a property with the name 'childComment'. In the debug I navigate to the childComment and this is its HTML visualisar:
new System.Linq.SystemCore_EnumerableDebugView<DataAccessLayer.Comment>(((ASP.usercontrols_comments_ascx)this).Comments)).Items[0]._comments_Replies.entities.items[0].childComment
The amount of li elements that will be rendered into each ul is determined at runtime. Each link in a li belongs to into a specific ul (the one containing a specific caption. Imagine this as a kind of a treeview with nodes and subnodes) During the bind Event I need access to an ASP:HyperLink that will be rendered into the a-element. Which databound ASP.Net control should I pick for this? Looks like a repeater in a repeater, which should make the databinding process ugly. I'm thinking about creating this HTML-Output with StringWriters myself.
I have a page with a data repeater. Each row has a dropdownlist for the user to select a value and the values in every dropdown are the same. I also have an SqlDataSource which each dropdownlist gets its values from as its created. Everything is working as it should but for each dropdown that is rendered a seperate call is made to the database.
suggest a better way for me to do this that means only one call to the database for all dropdowns rendered?
i already have a DataList, and i get any information from the rows i need by adding code such as:
[code]....
Well what i am doing there is using the values from the items that the DataList has obtained from the rows, now, what i need to do is EXACTLY the same, but for the FormView, i realised that this code does not work for the FormView, but only DataList control.
give me the code for doing exactly as shown, but for the FormView control.
i have to a grid view and the datasource for it is a table coming from the database the table containing sequence numbers for example if the sequence number is 1 then i want to add a row just above this saying it is the start , the entire row should give some information .
i tried to find related thing but no luck, waiting for some replies to move further
I need to be able to get the value in the "first" row of a Gridview as its getting or right after it is displayed.
I thought this would work but its coming up null.
I'm using the DataBound event to get the value of the control of a selected row...assuming the selected row is the first row which is probably the error of my ways. Any ideas how to get at this value easily?
i am developing a tree view component which should be data driven and amendable instead default layout provided by .net can we change that proper hierarchial structure like organization chart is there any chance to provide with an hyperlink to redirect other page or content view control below to display the content related to it.
I've got a repeater bound to a datasource through the code behind. Everything is working fine so far except for this, I'm trying to concactenate a bound field as the id on a query string to an image handler:
i have a FormView, and i already have a Label control that gets the value of theselected propery inside the FormView, so each time the FormView displays data, i have a Label control that displays individual values, according to the value of the FormView, here is the code:
[code]....
What i would like to do is to know how i could add a DataList instead of a Label, and then each time the FormView databinds an item, to show the value of the DataList How would i go about doing that?
I am facing certain problems with the data formatting in GridView when the data is bound dynamically to it.
I have a DateTime column and want to only show Date from it and not the time.
Another Decimal type column which accepts decimal upto 4 places, I want to show decimal upto the places defined in the particular value (don't know how to put it in the correct way, but here is an example of what I want).
i.e.
1.0000 should be displayed as 1 after the databound in the gridview.