Solved

How do you Programmatically store values in a WebPart?

Posted on 2011-09-08
12
256 Views
Last Modified: 2012-05-12
I need to have a per user DataTable Programmatically stored in a web-part.
0
Comment
Question by:Rahsaan-Pringle
  • 6
  • 4
  • 2
12 Comments
 
LVL 39

Expert Comment

by:Kyle Abrahams
ID: 36503522
Session? ViewState?

If you don't want to use the server's memory you can  use a Sql Table where user is part of the table itself.   It allows you to then
select * from table where user = @user

0
 
LVL 16

Expert Comment

by:Bryan Butler
ID: 36503552
From here:
http://msdn.microsoft.com/en-us/library/e0s9t4ck.aspx

I see this:
Creating a Data-Bound Web Parts Control
http://msdn.microsoft.com/en-us/library/ms227438.aspx

And here a code sample from a link on that page:
http://msdn.microsoft.com/en-us/library/ms227548.aspx
0
 

Author Comment

by:Rahsaan-Pringle
ID: 36503613
I originally planned to store the data in the database, because it's tabular in nature (two columns, x rows). I have been directed to avoid using the database. As far as I know, cookies aren't suitable because it's tabular, and Session isn't good because the data needs to persist between sessions. Data-Bounding isn't suitable because I have been told not to use the database.
0
 
LVL 39

Expert Comment

by:Kyle Abrahams
ID: 36503623
If data needs to be persisted between sessions than database is definitely the way to go.  Cookies should be able to store that data depending on the number of rows though.  

0
 

Author Comment

by:Rahsaan-Pringle
ID: 36503625
I agree about the database. How do you stick a table in a cookie?
0
 

Author Comment

by:Rahsaan-Pringle
ID: 36503629
I agree about the database. How do you stick a DataTable in a cookie?
0
Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

 
LVL 39

Expert Comment

by:Kyle Abrahams
ID: 36503671
same way would the session.  Just use create a cookie object.

http://msdn.microsoft.com/en-us/library/78c837bd.aspx#Y239


HttpCookie myCookie = new HttpCookie("UserSettings");
myCookie["Font"] = "Arial";
myCookie["Color"] = "Blue";
myCookie.Expires = DateTime.Now.AddDays(1d);
Response.Cookies.Add(myCookie);


myCookie["Datatable"] = dt;
0
 

Accepted Solution

by:
Rahsaan-Pringle earned 0 total points
ID: 36503711
It's good to know I'm not entirely crazy. I did try that. It says you can't convert DTs to strings.
52E43607-FDE0-4507-9993-B3DAB520.png
0
 
LVL 39

Expert Comment

by:Kyle Abrahams
ID: 36504527
Would do it the hard way then.

Make a delimited string:

String tmp ="";

for each row in dt.Rows
  tmp += row.Columns[0] + "|" + row.Columns[1] + "|" . . .  "~";

//write to cookie

then on load do spilts:

int i;
for each string tmpRow in  myCookie["dt"].ToString().Split("!")
{
   i = 0;
   DataRow row = dt.NewRow();
   for each string col in tmpRow.Split("|")
   {
     row[ i ] = col;
     i++;
   }
     dt.Rows.Add(row);
}

     
0
 
LVL 16

Expert Comment

by:Bryan Butler
ID: 36504747
Just remember the max cookie size is 4k.
0
 

Author Closing Comment

by:Rahsaan-Pringle
ID: 36898934
I had to try something else.
0
 

Author Comment

by:Rahsaan-Pringle
ID: 36711247
zzz
0

Featured Post

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Introduction: Sometimes when I receive a call from my users to solve their problems it is very difficult for me to found their computer IP address. Even finding their computer Host to provide remote support can be a problem.  So I resorted to Goo…
These days socially coordinated efforts have turned into a critical requirement for enterprises.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This tutorial demonstrates a quick way of adding group price to multiple Magento products.

708 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now