Solved

How do you Programmatically store values in a WebPart?

Posted on 2011-09-08
12
264 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
  • 2
12 Comments
 
LVL 40

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
How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

 
LVL 40

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
 
LVL 40

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 40

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

On Demand Webinar - Networking for the Cloud Era

This webinar discusses:
-Common barriers companies experience when moving to the cloud
-How SD-WAN changes the way we look at networks
-Best practices customers should employ moving forward with cloud migration
-What happens behind the scenes of SteelConnect’s one-click button

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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…
A recent project that involved parsing Tableau Desktop and Server log files to extract reusable user queries for use in other systems. I chose to use PowerShell to gather the data, and SharePoint to present it...
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
Michael from AdRem Software outlines event notifications and Automatic Corrective Actions in network monitoring. Automatic Corrective Actions are scripts, which can automatically run upon discovery of a certain undesirable condition in your network.…

728 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