Forms Data Controls :: Label In Repeater - Not Containing Text?
Jul 9, 2010
I have a repeater set up which takes all records from a SQL DB table and displays. One of the items in this repeater is a Label. The Label's job is to display the 'Responded' field of the database, which is a 'bit' Datatype.
However, when the label displays naturally, it will show TRUE or FALSE. As this is not appropriate for the end-user they would prefer If True = Completed and if False = Outstanding.
I have written the script to do this in an ItemDataBound field, so that (hope my understanding of itemdatabound is correct), everytime a record is found it checks to see what the value is in responded field and 'if true then do X else do Y'.
However, when I have ran it through debug mode it shows that the Label Text of the label is just "". Therefore it will always show 'Outstanding'. In addition, the AssociatedControlID is also blank (""), although I am unsure whether this would present a problem or not.
C#:
[Code]....
ASPX:
[Code]....
If any extra information is required I'll do my best to provide it.
I have a web page that has a repeater bound to a data source. I beed to change a label inside the repeater based on the data that is in each repeater item. For instance, for the first item it might be one thing, and for the next item the label may be something else. I am currently doing some processing in the prerender event, but I don't know if I can or how to access the data source fields there. Where and how do I get access to the data in each item so I can change the label text?
I have Template fields configured for Gridview. The gridview is using an objectdatabsource to bind itself. I have the gridview configured to use Templatefields which then contain tables to display the information. This works fine.
My question is, is it possible to change the text of the label if certain criteria is reached. If "NumberOfDwellings" is 1 then change the label to read, "1 Dwelling". Where-as if NumberOfDwellings has more than one then it's "3 Dwellings".
Lets say I have the above situation, and I need to update the appropriate label based upon which button is clicked. I have no idea how to do this. I can find a label via: (Label)Repeater2.Controls[0].Controls[0].FindControl("Label1");
But that only gives me the same label each time (so no matter which button I click the same lablel gets updated). How would I find the correct label to update?
how can i set the max-width of the label field, and use multiple line if the text length larger than max-width in the templateitem of repeater. i set the width to 10, but can't fix the length.
I tried this technique as suggested on another forum and a couple of other things, suggested on SitePoint as well as others but to no avail. Im trying to find the Label in the repeater to display information depending on the output. However I was presented with the following error:
"Index was out of range. Must be non-negative and less than the size of the collection.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index"
It highlights the problematic script as:
Label lblStatus = rptGeneralEnq.Items[0].FindControl("lblStatus") as Label;
I'm trying to access the Label, in the repeater, so that depending on if the text origionally displays true or false (as the label grabs the 'bit' datatype for that record to display) to then change the text to something more appropriate (completed/outstanding) - if at all possible.
I have a label control inside of repeater and I can't seem to get FindControl to locate the label inside of the repeater or even the repeater itself. I'm not sure what I'm doing wrong here. OnItemDataBound is firing because "hello1" is being written but if I put anything inside of the For Next loop of rptMarketFundamentals, nothing is run inside of it.
<asp:Repeater id="rptMarketFundmentals" runat="server" DataSourceID="dsMarketFundamentals" OnItemDataBound="rptMarketFundamentals_ItemDataBound"> <asp:Label ID="lblOwnershipCategory" runat="server" Text='<%# Eval("OwnershipCategory") %>' /> </asp:Repeater> Sub rptMarketFundamentals_ItemDataBound(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs) Response.Write("hello1") 'this works Dim dataItem As RepeaterItem For Each dataItem In rptMarketFundmentals.Items Response.Write("hello2") 'this does not work Dim lblOwnershipCategory As Label = CType(dataItem.FindControl("lblOwnershipCategory"), Label) If lblOwnershipCategory.Text.ToLower = "family firm" Then blOwnershipCategory.CssClass = "highlight" End If Next End Sub
aspects of some controls in Code Behind (VB) with controls inside a datalist and/or repeater. I have read a lot of stuff on using some tricks but none seem to work so far. I am new to ASP.net so some of the explanations are too cryptic as well. Below is a section of code that I am trying to change. This example is attempting to make the label visible if the dataitem is true and hidden if false. No matter what I seem to do I cann't reference this label to change. I also want to change the text on some other controls in this dataitem if the returned value is a certain value.
I'm trying to get the text value of a label when that row is selected in my gridview. The label's text is databound. Originally when I used the <ASP:BoundField /> I retrieved the data by using this syntax "Server.HtmlDecode(row.Cells[1].Text )" when an "onrowcommand" event is triggered. My question is what is the syntax to retrieve the text value of this label if I am using a template field in my gridview. The code for my label is below.
I have a Label1 (Which displays the userName on a page fetched from the c sharp). Now how do I display this Label1 on a text box(UserId), that's already binded, on the same page?
I have a datalist in a page which shows a username in a label from the database (theiruseridLabel)I'm trying to take this username, find its profile.firstname and profile.company name, and then display them as the text in 2 hyperlinks.
i have the code below, but this doesnt work..? can anyone see why? there is no error, just the hyperlinks just show as 'hyperlink' rather than the names i want.
HyperLink hp2 = DataList1.Items[0].FindControl("HyperLink2") as HyperLink; HyperLink hp3 = DataList1.Items[0].FindControl("HyperLink3") as HyperLink; [code]....