JRFromSoCal
asked on
Return style elements to New Xattribute
Would like to know how to return a style element to a New Xattribute. The following code doesn't work, but I think you can understand what I'm trying to accomplish. It returns the "Y" or "N", but not the color.
New XElement("td",
New XAttribute("align", "center"), _
New XAttribute("class", "standard"), _
New XAttribute("style", "width: 25px"), _
IsReprint(_item.IsReprint)), _
Public Function IsReprint(ByVal Reprint As String) As String
If (Reprint = "Y") Then
Return New XElement("td", _
New XAttribute("style", "color : red"), String.Format("{0}", "Y"))
Else
Return New XElement("td", _
New XAttribute("style", "color : black"), String.Format("{0}", "N"))
End If
End Function
ASKER
Thanks aikimark. Next time I post code I'll be sure to hit the code button.
You are using String.Format to change the value to Y and N.
If (Reprint = "Y") Then
Return New XElement("td", _
New XAttribute("style", "color : red"), String.Format("{0}", "Y"))
Else
Return New XElement("td", _
New XAttribute("style", "color : black"), String.Format("{0}", "N"))
End If
ASKER
Hi TheLearnedOne:
Thanks for responding. I'm getting the Y and N returned with no problem. What my goal is: is to have the Y returned in the color red and the N returned in the color black. That piece isn't happening. For some reason the style elements aren't being returned. I'm not sure if I've got the logic coded correctly. If I code the style attributes when I'm declaring the xattributes (above) it works fine. However, I can't put any if logic in it.
Thanks for responding. I'm getting the Y and N returned with no problem. What my goal is: is to have the Y returned in the color red and the N returned in the color black. That piece isn't happening. For some reason the style elements aren't being returned. I'm not sure if I've got the logic coded correctly. If I code the style attributes when I'm declaring the xattributes (above) it works fine. However, I can't put any if logic in it.
Can you show me a snippet of the XML that you expect, so that I can understand?
ASKER
Hi TheLearnedOne:
Below is the snippet you requested. This data fills a grid. If you notice the line with the align center. I need that Y to be red. The code in my original posting produces this. I'm not sure how to get the Y to display red after the grid has been loaded.
J.R.
<tr id="20192" subid="2" impressioncontrolid="0" jobid="47" partcount="1" reprintid="645" statusid="1">
<td align="left" class="standard1" style="width: 100px">20192</td>
<td align="left" class="standard" style="width: 25px">2</td>
<td align="left" class="standard" style="width: 25px">KMP</td>
<td align="center" class="standard" style="width: 25px">Y</td>
<td align="left" class="standard" style="width: 100px">20# WHITE</td>
<td align="left" class="standard" style="width: 100px">BLUE CHECKS</td>
<td align="left" class="standard" style="width: 100px"></td>
<td align="left" class="standard" style="width: 100px"></td>
<td align="left" class="standard" style="width: 25px">0</td>
<td align="left" class="standard" style="width: 25px">0</td>
<td align="left" class="standard" style="width: 125px">09-24-2008</td>
<td align="left" class="standard" style="width: 25px"></td>
</tr>
Below is the snippet you requested. This data fills a grid. If you notice the line with the align center. I need that Y to be red. The code in my original posting produces this. I'm not sure how to get the Y to display red after the grid has been loaded.
J.R.
<tr id="20192" subid="2" impressioncontrolid="0" jobid="47" partcount="1" reprintid="645" statusid="1">
<td align="left" class="standard1" style="width: 100px">20192</td>
<td align="left" class="standard" style="width: 25px">2</td>
<td align="left" class="standard" style="width: 25px">KMP</td>
<td align="center" class="standard" style="width: 25px">Y</td>
<td align="left" class="standard" style="width: 100px">20# WHITE</td>
<td align="left" class="standard" style="width: 100px">BLUE CHECKS</td>
<td align="left" class="standard" style="width: 100px"></td>
<td align="left" class="standard" style="width: 100px"></td>
<td align="left" class="standard" style="width: 25px">0</td>
<td align="left" class="standard" style="width: 25px">0</td>
<td align="left" class="standard" style="width: 125px">09-24-2008</td>
<td align="left" class="standard" style="width: 25px"></td>
</tr>
Do you need the element to be like this?
<td align="center" class="standard" style="width: 25px;color: red">Y</td>
ASKER
I could produce that red Y by making the following adjustment to the xattribute declaration.
New XAttribute("style", "color:red; width: 25px;"), IsReprint(_item.IsReprint) ), _
However, I need the Y's to be red and the N's to be black. If I were to code it like the above, both results would be red.
J.R.
New XAttribute("style", "color:red; width: 25px;"), IsReprint(_item.IsReprint)
However, I need the Y's to be red and the N's to be black. If I were to code it like the above, both results would be red.
J.R.
New XAttribute("style", "color:red; width: 25px;"), IsReprint(_item.IsReprint)), _
I would think something like this might work:
Dim td As New XElement("td")
Dim style As New StringBuilder("width: 25px;")
If (Reprint = "Y") Then
style.Append("color: red;")
Else
style.Append("color: black;")
End If
td.Add(New XAttribute("style", style, Reprint))
Return td
ASKER
This looks great. However, I'm getting the following error: Overload resolution failed because no accessible ‘New” accepts this number of arguments.
J.R.
J.R.
td.Add(New XAttribute("style", style, Reprint))
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Works like a charm. I tried the return type as a string and a xattribute. For some stupid reason I never thought to try the return type as an xelement. You're awesome TheLearnedOne. Thanks so much for your help.
J.R.
J.R.
ASKER
Works like charm.
ASKER
J.R.