Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > Displaying dictionary collection key/value pairs formatted with html markup on a page

Reply
Thread Tools

Displaying dictionary collection key/value pairs formatted with html markup on a page

 
 
Andy B
Guest
Posts: n/a
 
      04-22-2008
I have the object property StockContract.Dictionary which is a dictionary
collection of <string, string> key/value pairs. I need to be able to
retreive the keys and their values and display them on a page. I want to use
something like a repeater or something like that. I don't know if this would
be code I will have to manually write myself, or if it can be done with
dataBinding of some sort. I am using vs2008 and c# 3.5. Any ideas on how to
do something like this?



 
Reply With Quote
 
 
 
 
Andy B
Guest
Posts: n/a
 
      04-22-2008
I tried to put the StockContract.Dictionary property as a
listView.DataSource. The compiler isn't complaining about it yet, but there
is another question about this kind of databinding. Inside the item
template, What do I use for the Eval() method to get the values out of the
Dictionary collection? I tried Eval("Keys") as the text for a Label control,
but that is what I litterally end up with as the text instead of the text of
the key. Any ideas how to deal with something like this?


"Mark Rae [MVP]" <> wrote in message
news:%...
> "Andy B" <> wrote in message
> news:...
>
>>I have the object property StockContract.Dictionary which is a dictionary
>>collection of <string, string> key/value pairs. I need to be able to
>>retreive the keys and their values and display them on a page. I want to
>>use something like a repeater or something like that. I don't know if this
>>would be code I will have to manually write myself, or if it can be done
>>with dataBinding of some sort. I am using vs2008 and c# 3.5. Any ideas on
>>how to do something like this?

>
> <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="true" />
>
> Dictionary<string, string> dicTest = new Dictionary<string, string>();
> dicTest.Add("1st", "First");
> dicTest.Add("2nd", "Second");
> dicTest.Add("3rd", "Third");
> gvTest.DataSource = dicTest;
> gvTest.DataBind();
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net



 
Reply With Quote
 
 
 
 
Andy B
Guest
Posts: n/a
 
      04-23-2008
I am trying to databind to the collection like you normally would say to a
database table. I need to cycle through all of the keys and print out their
key text and value text on a page. The print out has to be formatted with
html markup...
"Mark Rae [MVP]" <> wrote in message
news:O%...
> "Andy B" <> wrote in message
> news:...
>
> [top-posting corrected]
>
>>>>I have the object property StockContract.Dictionary which is a
>>>>dictionary collection of <string, string> key/value pairs. I need to be
>>>>able to retreive the keys and their values and display them on a page. I
>>>>want to use something like a repeater or something like that. I don't
>>>>know if this would be code I will have to manually write myself, or if
>>>>it can be done with dataBinding of some sort. I am using vs2008 and c#
>>>>3.5. Any ideas on how to do something like this?
>>>
>>> <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="true" />
>>>
>>> Dictionary<string, string> dicTest = new Dictionary<string, string>();
>>> dicTest.Add("1st", "First");
>>> dicTest.Add("2nd", "Second");
>>> dicTest.Add("3rd", "Third");
>>> gvTest.DataSource = dicTest;
>>> gvTest.DataBind();

>>
>> I tried to put the StockContract.Dictionary property as a
>> listView.DataSource. The compiler isn't complaining about it yet, but
>> there is another question about this kind of databinding. Inside the item
>> template, What do I use for the Eval() method to get the values out of
>> the Dictionary collection? I tried Eval("Keys") as the text for a Label
>> control, but that is what I litterally end up with as the text instead of
>> the text of the key. Any ideas how to deal with something like this?

>
> Not sure what you're trying to do exactly...
>
> What you've got here is, essentially, a two-dimensional array - which
> field from which row are you trying to use as the text in a Label
> control...?
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net



 
Reply With Quote
 
Andy B
Guest
Posts: n/a
 
      04-23-2008

"Mark Rae [MVP]" <> wrote in message
news:...
> "Andy B" <> wrote in message
> news:%...
>
> [top-posting corrected again]
>
>>>>>>I have the object property StockContract.Dictionary which is a
>>>>>>dictionary collection of <string, string> key/value pairs. I need to
>>>>>>be able to retreive the keys and their values and display them on a
>>>>>>page. I want to use something like a repeater or something like that.
>>>>>>I don't know if this would be code I will have to manually write
>>>>>>myself, or if it can be done with dataBinding of some sort. I am using
>>>>>>vs2008 and c# 3.5. Any ideas on how to do something like this?
>>>>>
>>>>> <asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="true" />
>>>>>
>>>>> Dictionary<string, string> dicTest = new Dictionary<string, string>();
>>>>> dicTest.Add("1st", "First");
>>>>> dicTest.Add("2nd", "Second");
>>>>> dicTest.Add("3rd", "Third");
>>>>> gvTest.DataSource = dicTest;
>>>>> gvTest.DataBind();
>>>>
>>>> I tried to put the StockContract.Dictionary property as a
>>>> listView.DataSource. The compiler isn't complaining about it yet, but
>>>> there is another question about this kind of databinding. Inside the
>>>> item template, What do I use for the Eval() method to get the values
>>>> out of the Dictionary collection? I tried Eval("Keys") as the text for
>>>> a Label control, but that is what I litterally end up with as the text
>>>> instead of the text of the key. Any ideas how to deal with something
>>>> like this?
>>>
>>> Not sure what you're trying to do exactly...
>>>
>>> What you've got here is, essentially, a two-dimensional array - which
>>> field from which row are you trying to use as the text in a Label
>>> control...?

>>
>>I am trying to databind to the collection like you normally would say to a
>>database table.

>
> Can you clarify what you mean by that, please? You don't databind *to* a
> database table - you databind *from* a database table *to* a webcontrol
> such as a GridView etc...
>
>> I need to cycle through all of the keys and print out their key text and
>> value text on a page. The print out has to be formatted with html
>> markup...

>
> You didn't say that originally...
>
> foreach (KeyValuePair<string, string> objKVP in dicTest)
> {
> MyLabel.Text += objKVP.Key + " - " + objKVP.Value + "<br />";
> }
>
> If the Dictionary is quite large, it would probably be better to use a
> StringBuilder...
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net


There seems to be a problem with the KeyValuePair<string, string> part. I am
not getting intelisense for the local variable defined as a KeyValuePair.

foreach(KeyValuePair<string, string> values in StockContract.Dictionary) {
Label1.Text = Values.key; //cant get intelisense for this line...

....
}



 
Reply With Quote
 
sofacles@yahoo.com
Guest
Posts: n/a
 
      09-24-2008
Hi Andy,

I was just trying to do this myself, and had some luck using the
ItemDataBound event:

MyRepeater.DataSource = dicTest;
rptBusinessTypes.ItemDataBound += new
RepeaterItemEventHandler(MyRepeater_ItemDataBound) ;
MyRepeater.DataBind();


void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e){
//in the repeater ItemTemplate, you'll have a control
//called foo. I made mine an asp:Hyperlink.

HyperLink foo = e.Item.FindControl("foo") as HyperLink;
if(null != foo)
{
DictionaryEntry de = (DictionaryEntry)(e.Item.DataItem);
foo.Text = Convert.ToString(de.Value);
}

*** Sent via Developersdex http://www.developersdex.com ***
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
html formatted string -displaying only upto specific length Subashini Kumar Ruby 1 01-06-2010 06:06 PM
Collection problems (create Collection object, add data to collection, bind collection to datagrid) Øyvind Isaksen ASP .Net 1 05-18-2007 09:24 AM
Rpy: displaying multivariate data with pairs() and coplot() malv Python 0 12-12-2005 08:51 PM
Displaying the all the name-value pairs of the session object? =?Utf-8?B?RGlmZmlkZW50?= ASP .Net 3 05-12-2005 11:54 PM
Best way to create a Dictionary from file of Key-Value pairs? Equis Uno Python 6 03-01-2004 06:08 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57