Web Forms :: How To Store Multi Dimensional Array To Viewstate?
Oct 8, 2010
How do you store multi-dimensional array to viewstate? Here's what I did:
public bool[,,] regsettings = new bool[7,5,4];
bool[,,] regsettings = (bool[,,])ViewState["regsettings"]; // this line works!
regsettings[i,j,tab] = (bool)ViewState["regsettings"]; // this line no working?! The error is: Object reference not set to an instance of an object. The letters i,j, tab are just variables in the loop. They are there. I also tried: (bool[,,,]) as a cast and it is a no-go either.?
I know I can use arrayName.length to find out how many items in total in the array there are, but how can I gracefully find out how many items are in a specific dimension? I know I could probably do it in a for each loop, but it would look a little messy, does anyone know of a simple way that I may have overlooked?
First I am sorry if I am creating a thread in the wrong category as I am not sure which is the best suitable place for this question: I want to create a user defined data structure, which will be a 2 dimensional array such that each individual square of this 2-dimensional array will also store the score and the grades. ( Iam using VB.NET) More details: for example: There is an 2 dimensional array with 3 columns and 2 rows, I want to fill each of the (0,0);(0,1);(0,2) with their own score (Integer type) and grades (String Type). And this is same for the rest of the squares i.e. (1,0);(1,1);(1,2) and (2,0);(2,1);(2,2) After creating such custom data structure: "CustomArray", I should be able to create the instance of this custom data structure (which will be a class) and code something like this:
Dim objCustomArray as CustomArray objCustomArray = New CustomArray
for i as Integer =0 to 3
objCustomArray(0,i).SetScore(1) objCustomArray(0,i).SetGrade("Good") Next ------- for i as Integer =0 to 3 Dim myVal as Integer = objCustomArray(0,i).GetScore() Dim myGrade as String = objCustomArray(0,i).gettGrade() Next -----
Can we use a 2 dimensional array to bind it in our form? In my model I have this: public class EmailDetails { public string[] emailTo { get; set; } public string[,] emailFieldValues { get; set; } }
So in my form to bind the emailTo is simple and this one works: <input type="text" id="Text1" title=" " name="emailTo" maxlength="100" /> <input type="text" id="Text1" title=" " name="emailTo" maxlength="100" />
I need a 2 dimensional array so that I can match the value with something, like this:<input type="text" id="Text1" title=" " name="EmailDetails["@name",valueofinput] maxlength="100" />
I have this array: string[,] productData = new string[5,7]; I bind it to a repeater and a call a method like: <img src="<%# getPhoto1WithReplace(Container.ItemIndex) %>" Which is defined like: public String getPhoto1WithReplace(Object itemIndex) { int intItemIndex = Int32.Parse(itemIndex.ToString()); if (productData[intItemIndex, 3] != null) return this.ResolveUrl(productData[intItemIndex, 3].ToString()); else return String.Empty; } I do not understand why it calls getPhoto1WithReplace with itemIndex as 5. My array has 5 indexes: 0,1,2,3,4, so How Container.ItemIndex can be 5?
I am getting an error when trying to serialize an object products. Product product = new Product(); product.Name = "Apple"; product.Expiry = new DateTime(2008, 12, 28); product.Price = 3.99M; product.Sizes = new string[3,2] { {"Small","40"}, {"Medium","44"}, {"Large","50"} }; string json = JsonConvert.SerializeObject(product);//this line is throwing an error
Array was not a one-dimensional array. Is there any way to serialize a two dimensional array with Newtonsoft.json.
I've created an Excel spreadsheet for my users to upload into my web application to bulk import memberships and roles into the application. There are up to 4 different roles which users can be members of so I'm using AddUsersToRoles to add the user to one or more roles in one line of code like this: r.AddUsersToRoles(usernames, CreateListOfRoles(Role1, Role2, Role3, Role4))
As this line of code expects a one-dimensional array of roles, I have created a function to take in the roles from my spreadsheet, add them into a one-dimensional array, and return that to the AddUsersToRoles method. The CreateListOfRoles function looks like this: [Code]....
The error that I'm getting though is "System.InvalidCastException: At least one element in the source array could not be cast down to the destination array type." I've stepped through the Function in debug mode and all the values look correct and there are the correct number of items in the array so I don't understand what's going wrong.
I want to group by the date, these values are now in a dataset. What comes up to my mind is an array list with the following: The master array would have each date listed on the dataset above, within each row of this array I would have the list of numbers for that specific date. How do I do that in VB.NET?
My original code was in classic vb. and could use redim array to resize them. I was porting the code to c# now and lately i have run into an issue to resize a 2 dimensional array. The thing here is I have a 2 dimensional array whose 2nd dimension needs to be increased dynamically as needed to accommodate the data. For say
String[,] ary1=new String[2,10];
I'm doing some operation in a loop and filling in the data in ary1. And if the loop still continues, on reaching the ary1 upper bound i need to increase the size further to accommodate 10 more rows. I tried couple of ways to copy it to a bigger array and assign it back to the current array. but somehow dint work.
I would like to store an array of string or a List<string> in a Hiddenfield. You can c the code I am trying below :
public int[] ListEmails{ get { if (hdnEmailBody.Value.Length == 0)return new List<string>();return hdnEmailBody.Value.Split(); }set { hdnEmailBody.Value = ? } } value;
I have several store procedure to do different things. When user click submit button, call store_procedureOne, store_procedureTwo, store_procedureThree.
I want to retrieve and store(in an array) all the row values of a particular column in a gridview..i.e,if I have gridview with columns col1,col2 and col3, I want to retrieve rows of col1 by specifying col1..And,store all the rows in an array
I can tried save some data to ViewState, but i get this Error:
Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerServerErrorException: Error serializing value 'HeRMeSSAAS.BussinesProcess.BussinesServices.CandidateService' of type 'HeRMeSSAAS.BussinesProcess.BussinesServices.CandidateService.' Code:
private IActionService ActionService { get [code]... How i can store value to ViewState?
EDIT: ViewState does not change when browser is refreshed, so even if you write to viewstate it will not save the data. i am trying to store a Queue in a viewstate (to track postbacks and refreshes to stop a form from resubmitting). The Queue is only saving with a count of 1 (the first item that is added to it) no matter how many items i add.
// New Queue of strings private Queue<string> sTemp; private Queue<string> p_tempQue { set { ViewState["sTemp"] = value; } get { return (Queue<string>)ViewState["sTemp"]; } } //BasePage constructor public BasePage() { //create a Queue of string //sTemp = new Queue<string>(); this.Load += new EventHandler(this.Page_Load); this.Init += new EventHandler(this.Page_Init); } //In the 'page_Init' event we have created a simple hidden field by name 'hdnGuid' which is attached to the page on the first hit itself. protected void Page_Init(object sender, EventArgs e) { //initializing the hidden field //create a hidden field with a ID HiddenField hdnGuid = new HiddenField(); hdnGuid.ID = "hdnGuid"; //if it is the first time the page is loaded, create a new guid and assign it as the hidden field value if (!Page.IsPostBack) hdnGuid.Value = Guid.NewGuid().ToString(); //add the hidden field to the page Page.Form.Controls.Add(hdnGuid); } //In the 'page_Load' event we check if the hidden field value is same as the old value. In case the value is not same that means it's a 'postback' //and if the value is same then its 'refresh'. As per situation we set the 'httpContent.Items["Refresh"]' value. protected void Page_Load(object sender, EventArgs e) { if(p_tempQue != null) sTemp = p_tempQue; else sTemp = new Queue<string>(); //The hdnGuid will be set the first time page is loaded, else the hdnGuid //will be set after each time the form is submitted using javascript. //assign the hidden field currently on the page for manipulation HiddenField h1 = (HiddenField)(Page.Form.FindControl("hdnGuid")); //create an instance of the GuidClass GuidClass currentGuid = new GuidClass(); //set the GuidClass Guid property to the value of the hidden field currentGuid.Guid = h1.Value; //check to see if the Queue of strings contains the string which is the current Guid property of the GuidClass //if the are equal, then the page was refreshed if (sTemp.Contains<string>(currentGuid.Guid)) { //adds item as key/value pair to share data between an System.Web.IHttpModule interface and an System.Web.IHttpHandler interface during an HTTP request. System.Web.HttpContext.Current.Items.Add("IsRefresh", true); } //if they are not requal, the page is not refreshed else { //if the current Guid property in the GuidClass is not null or not an empty string //add the new Guid to the Queue if (!(currentGuid.Guid.Equals(null) || currentGuid.Guid.Equals(""))) sTemp.Enqueue(currentGuid.Guid); System.Web.HttpContext.Current.Items.Add("IsRefresh", false); } p_tempQue = sTemp; }
how to store an array in session and how to retrieve that array from session?
I am trying to store one array of type Double and assigning values of the same type but it is showing me an error. How do I assign values to the array which is in session?