MVC :: JSON Object - Grid Is Not Filling Properly
Feb 25, 2011
I've created a simple (or what I thought was simple!) search form using Razor, MVC3 and the webgrid from the web helpers. I enabled paging, used a great article I found here to get that working... or so I thought. Basically what happens is that when I click the page buttons at the bottom of the grid it does something that I didn't expect, and creates a JSON object, then the browser prompts me to try and save it, and not as I expected to refill the grid. I can't see what I'm doing wrong, and before I break my monitor by throwing it onto the railway line!
[Code]....
My jQuery code
[Code]....
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using MvcApplication1.Models;
using System.Configuration;
using System.Web.Helpers;
namespace MvcApplication1.Controllers
{
public class SearchController : Controller
{
//
// GET: /Search/
Entities t = new Entities(ConfigurationManager.ConnectionStrings["Entities"].ConnectionString);
public ActionResult Details(int id)
{
Tender_Question q = (from x in t.Tender_Questions where x.Unique_ID_number == id select x).SingleOrDefault();
Customer c = (from cu in t.Customers where cu.CustomersID == q.Company select cu).SingleOrDefault();
ViewBag.Customers = c.CompanyName;
Panel_type pan = (from pa in t.Panel_types where pa.ID == q.Panel_type select pa).SingleOrDefault();
ViewBag.Panel = pan.Panel_type1;
return View(q);
}
[HttpGet]
public ActionResult Edit(int id)
{
Tender_Question q = (from x in t.Tender_Questions where x.Unique_ID_number == id select x).SingleOrDefault();
List<Customer> c = (from cu in t.Customers select cu).ToList();
ViewBag.Customers = c;
return View(q);
}
[HttpPost]
public ActionResult Edit(Tender_Question model)
{
if (ModelState.IsValid)
{
Tender_Question q = (from x in t.Tender_Questions where x.Unique_ID_number == model.Unique_ID_number select x).SingleOrDefault();
q.Answer = model.Answer;
q.Company = model.Company;
q.Customer = model.Customer;
q.Date = model.Date;
q.Page_Question_Ref = model.Page_Question_Ref;
q.Panel_type = model.Panel_type;
q.Question = model.Question;
q.Type_of_tender = model.Type_of_tender;
//add update code
t.SaveChanges();
return RedirectToAction("Index");
}
else
{
return View(model);
}
}
[HttpGet]
public ActionResult Search(int? page)
{
if (page.HasValue)
{
return RedirectToAction("EfficientPaging", new { page = page });
}
else
{
return View();
}
}
[HttpPost]
public ActionResult Search(int? page, FormCollection collection)
{
TempData.Clear();
IEnumerable<Tender_Question> q = getSearch(collection);
TempData.Add("Results", q);
return View(q);
}
private IEnumerable<Tender_Question> getSearch(FormCollection collection)
{
string question;
string answer;
IEnumerable<Tender_Question> q = t.Tender_Questions;
question = collection["Question"];
answer = collection["Answer"];
if (!string.IsNullOrEmpty(question))
{
if (question.EndsWith(","))
{
question = question.Substring(0, question.Length - 1);
} if (question.Length > 0)
{
if (question.Contains(","))
{
string[] questioned = question.Split(',');
foreach (string s in questioned)
{
q = q.Where(m => m.Question.Contains(s));
}
}
else
{
q = q.Where(m => m.Question.Contains(question));
}
}
}
if (!string.IsNullOrEmpty(answer))
{
if (answer.EndsWith(","))
{
answer = answer.Substring(0, answer.Length - 1);
}
if (answer.Length > 0)
{
if (answer.Contains(","))
{
string[] answered = answer.Split(',');
foreach (string s in answered)
{
q = q.Where(m => m.Answer.Contains(s));
}
}
else
{
q = q.Where(m => m.Answer.Contains(answer));
}
}
}
return q;
}
[HttpGet]
public ActionResult EfficientPaging(int? page)
{
IEnumerable<Tender_Question> q = (IEnumerable<Tender_Question>)TempData["Results"];
int skip = page.HasValue ? page.Value - 1 : 0;
q = q.OrderBy(o => o.Unique_ID_number).Skip(skip * 10).Take(10).ToList();
var grid = new WebGrid(q);
var column = new WebGridColumn();
column.CanSort = false;
column.ColumnName = "Unique_ID_number";
column.Header = "Edit";
column.Format = (item) =>
{
return new HtmlString("<a href="/Home/Edit/" + column.ColumnName + "">Edit</a> ");
};
var detcolumn = new WebGridColumn();
detcolumn.CanSort = false;
detcolumn.ColumnName = "Unique_ID_number";
detcolumn.Header = "Details";
detcolumn.Format = (item) =>
{
return new HtmlString("<a href="/Home/Details/" + column.ColumnName + "">Details</a> ");
};
var htmlString = grid.GetHtml(htmlAttributes: new { id = "DataTable" }, columns: grid.Columns(
column, detcolumn,
grid.Column("Question"),
grid.Column("Answer"),
grid.Column("Company"),
grid.Column(columnName: "Type_of_tender", header: "Type of Tender"),
grid.Column(columnName: "Panel_type", header: "Panel type"),
grid.Column(columnName: "Page_Question_Ref", header: "Page Question Ref"),
grid.Column("Date")
));
return Json(new
{
Data = htmlString.ToHtmlString(),
Count =q.Count() / 10
}, JsonRequestBehavior.AllowGet);
}
}
}
View 4 Replies
Similar Messages:
Jun 3, 2010
I am working on ASP MVC 2 application. I have used the following jquery plugin & css
<link href="../../Content/ui.jqgrid.css" rel="stylesheet" type="text/css" />
View 4 Replies
Mar 3, 2011
This is the javascript code i tried to export my grid data in json. it throws an exception and i can't figure out why. when i downloaded the jqgrid i checked the import/export module. I want to insert the json in a hidden field in order to get the data on the server side for validating and saving.
$('#proveObjekt2').val(JSON.stringify($("#rowed5").jqGridExport("jsonstring")));
...
<asp:HiddenField ID="proveObjekt2" runat="server" />
View 1 Replies
Jan 12, 2011
We are trying to fill JqGrid in ASP.NET MVC3 application where datatype is set to 'jsonstring' and in it's action controller, we set the json data string in ViewData and retrieve the same in javascript function where we used it to fill the Jqgrid.
// Action code
[Code]....
// Javascript code to fill Jqgrid
[Code]....
[Code]....
There is an error while filling grid and when i alert the data it shows " in place of " in data, as below.
{{"total":2,"page":1,"records":2,"rows":[{"RequestID":"1","cell":["CPU","DELL OptiPlex 745","DELL","OptiPlex 745","5"]},{"RequestID":"2","cell":["CPU","TOSHIBA Tablet Portege 3500","TOSHIBA","Tablet Portege 3500","10"]}]}
[data displays fine on this post :) ]
The decodeURI function do not work on strData and it always show " in place of " in the data. We do not want to replace the " with " in a loop as it slow the page with large data.
View 2 Replies
Jan 21, 2011
I use the JavaScriptSerializer class of ASP.net to serialize my object and return it to the client side. How can I deserialize the string using JavaScript?
View 4 Replies
Apr 5, 2010
Code like this....
[Code]....
View 4 Replies
Sep 25, 2010
I m working on ASP.net2.0 I m facing an error like "Object reference Not set to an instance" while filling dataset wht will b the Solution for this error?
View 8 Replies
Aug 30, 2010
I've scenario where I want to insert data into database without post back. there are around 12 to 13 fields which i need to insert. I'm passing DTO from the client side which is actually Json object. Now the problem which i'm facing is how to convert that Json object which i got in webservice to the "class" (in my case class name is User) object.
[Code]....
In the above case AddNewUser method takes the object of User class. But i'm getting casting error. So how do I convert Json object to the "User" class object?
View 3 Replies
Feb 11, 2010
Is there an easy way to populate my C# Object with the JSON object passed via AJAX?
//This is the JSON Object passed to C# WEBMETHOD from the page using JSON.stringify
{"user":{"name":"asdf","teamname":"b","email":"c","players":["1","2"]}}
//C# WebMetod That receives the JSON Object
[WebMethod]
public static void SaveTeam(Object user)
{
}
//C# Class that represents the object structure of JSON Object passed in to the WebMethod
public class User
{
public string name { get; set; }
public string teamname { get; set; }
public string email { get; set; }
public Array players { get; set; }
}
View 4 Replies
Oct 23, 2010
In MVC3 Beta version i have action result same like
public ActionResult Save(Dictionary<string, string> dicObject)
I want to pass JSON Object in POST Method from javascript and need to get as dictionary object
How can i do this? can you write example if possible?
View 5 Replies
Nov 9, 2010
My grid is not binding properly in IE and I found the reason why it is not working. one of my column value in grid is showing video and database value is
<object id='video' width='462' height='407' type='application/x-shockwave-flash'
data='http://view.vzaar.com/286291.flashplayer'>
<param name='movie' value='http://view.vzaar.com/286291.flashplayer'>
<param name='allowScriptAccess' value='always'>
<param name='allowFullScreen' value='true'>
<param name='wmode' value='transparent'>
<param name='flashvars' value='colourSet=blue&brandText=LSAT+Freedom&brandLink=lsatfreedom.com'>
<embed src='http://view.vzaar.com/286291.flashplayer'></embed>
</object>
When I comment to this column while binding, my grid is working fine and showing all next records.
But I want this column.
How to bind <object ....> tag to grid so that a video can be displayed.
View 1 Replies
Jul 2, 2010
The stored proc fired to populate my grid view gets a column CasNo.The GridView has a DataBound item for CaseNo.
[Code]....
Then Why does this get null value: string caseNo = dataRow["CaseNo"] as string;
[Code]....
[Code]....
View 14 Replies
Apr 12, 2010
In gridview I am adding row as mentioned below
string hyPerLinkUri = DispForm.aspx?ID=" + result["ID"].ToString()
row["Schedule ID"] = hyPerLinkUri;
Then I added hyperlinkfield column grid
[Code]....
It is showing hyperlink column link in grid properly, but as column text it is showing full hyperlink url rather then only value of ID, can anyone tell whats wrong I am doing here. Secondly, I also want that if someone click on hyperlink text, it should open in new window.
View 2 Replies
Oct 21, 2010
I am calling an action from JQuery using $.getJSON() method.
This action returns a JsonResult object.
I am getting all the values correctly but not the Date Format.
Below is the Date format which i am getting.
/Date(1287587195000)/
/Date(1287587195000)/
But i want it like "10/15/2010 11:56 AM" this format.
How can i achieve it...
View 1 Replies
Feb 23, 2010
We are trying to consume WCF service which returns employee details in JSON Format.
like:
{"d":[{"_type":"Employee:#","BigThumbNailURI":null,"ID":1,"Name":"E1"},{"_type":"Employee:#","BigThumbNailURI":null,"ID":2,"Name":"E1"}]}
From VB.net code behind when I am trying to deserialize it it's stating that
"Expecting state 'Element'.. Encountered 'Text' with name '', namespace ''."
Deserialization code snippet:
Dim serializer = New DataContractJsonSerializer(GetType(List(Of Employee)))
Dim memoryStream = New MemoryStream()
Dim s = msg.Content.ReadAsString()
serializer.WriteObject(memoryStream, s)
memoryStream.Position = 0.......
View 2 Replies
Aug 10, 2013
I've been following tutorials. I got a problem while attempting to try your sample,
Here is the sql syntax that i emulated from one of your tutorials
USE [arrestedpersonsdb]GO/****** Object: StoredProcedure [dbo].[stnencodedtodisplay]
Script Date: 08/10/2013 15:57:50 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================--
Author: <Author,,Name>-- Create date: <Create Date,,>--
Description: <Description,,>-- =============================================
CREATE PROCEDURE [dbo].[stnencodedtodisplay]
( @PageIndex INT = 1 ,@PageSize INT = 10 ,@RecordCount INT OUTPUT ,@id int ,
[Code] ....
If I use the first two parameter namely stnid and type it returns as expexted but when i try to add another parameter sample below:
USE [arrestedpersonsdb]GO
DECLARE @return_value int, @RecordCount int
EXEC @return_value = [dbo].[stnencodedtodisplay] @PageIndex = 1, @PageSize = 10, @RecordCount = @RecordCount OUTPUT, @id = 1599, @fname = 'ALDRIN', @lname = ''
SELECT @RecordCount as N'@RecordCount'
SELECT 'Return Value' = @return_value
GO
it doesn't return anything is it because the data being returned is a single row or this type of query doesn't allow multiple parameters...
View 1 Replies
Oct 7, 2010
If I have a string containing valid JSON
how can I convert to an obect in c#?
View 2 Replies
Apr 6, 2010
I want to serialize an object to json, so I'm using [Code]....
[Code]....
This is fine, but I want to return different json datasets depending on the circumstances. Lets say I have this object (a simplified example):
[DataContract]
class foo
{
[DataMember] int productId
[DataMember] string productName
double price; //not used in json.. yet
}
Which will serialize to a json object containing the product name & Id, but what if I also need to be able to return a different json object (say, productId and price but not name)? Can this be done somehow in the same object using WCF/DataContracts and DataMembers? This will be sent in an ajax query containing a collection of objects and needs to fast, so just including every member in every type of json request whether it's needed or not isn't a good solution.
View 1 Replies
Feb 14, 2011
I have an object called MyObject that has several properties. MyList is a list of MyObject that I populate with a linq query and then I serialize MyList into json. I end up with something like this
List<MyObject> MyList = new List<MyObject>();
MyList = TheLinqQuery(TheParam);
var TheJson = new System.Web.Script.Serialization.JavaScriptSerializer();
string MyJson = TheJson.Serialize(MyList);
What I want to do is serialize only parts of MyObject. For instance, I might have Property1, Property2...Propertyn and I want MyJson to only include Property3, Property5 and Property8.
I thought of a way to do this by creating a new object with only the properties I want and from there create a new list for the serialization.
View 1 Replies
Sep 14, 2010
For my ASP.Net application I need to use a HTTP REST API that returns a JSON object.Here's how the JSON looks:
message: [
{
type: "message"
href: "/messages/id/23"[code]....
I could use the DataContractJsonSerializer Class and have custom Classes defined. However, am not sure how keys like "$" would get converted to in .Net.
View 3 Replies
Apr 19, 2010
I am unable to convert JSON string to .net object in asp.net. I am sending JSON string from client to server using hidden field (by keeping the JSON object.Tostring() in hidden field and reading the hidden field value in code behind file)
Json string/ Object:
[[{"OfferId":"1","OrderValue":"11","HostingTypeID":"3"},
{"OfferId":"1","OrderValue":"11","HostingTypeID":"3"},
{"OfferId":"1","OrderValue":"11","HostingTypeID":"3"},
{"OfferId":"1","OrderValue":"2","HostingTypeID":"3"},
[Code]....
While converting i am getting following error:
Expecting element 'root' from namespace ''.. Encountered 'None' with name '', namespace ''.
View 3 Replies
Apr 20, 2010
I have a json object collection of geo locations that I build in the server. Each of those objects has two properties: "marker" and "onClick". Marker is for storing a Google Maps marker object and the onClick stores the name of the function to be called when that marker is clicked on the map.When I'm pushing the location objects into an array using javascript in the client side, I create the markers and assign them to each location object within the array.
My problem is that when I bind the marker with the onClick property, the function won't be found in the DOM and get an error.Is there a way to declare a property in a json object for using it on an event binding?
View 1 Replies
Mar 25, 2011
I have the following result in my controller from the $.toJSON method;
"[{"param":"Update Payment","value":"50.00"}]"
How do I extract the values from param: and value: ???
View 4 Replies
Apr 1, 2011
I have a System.Data.Linq.DataContext object and need to know the proper way of closing it out before it goes out of scope in order to prevent the following error when making a bunch of database changes:
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.
Can I just call obj.Dispose() or do I need to call obj.Connection.Dispose() or obj.Connection.Close()?
I guess what I want to know is will calling obj.Dispose() end up executing the functionality in obj.Connection.Dispose() and obj.Connection.Close(). The MSDN documentation that I found on these functions does not have this information (at least I didn't see it - I could have mistakenly overlooked it).
View 3 Replies
Jul 7, 2010
i am searching for a way to create a grid (from some kind of jquery grid plugin didnt choose one yet)
anyway i want to call a webmethod and return a json serialized from a List of an object i created.
today i just use a regular grid view inside an iframe
but i want to eliminate that iframe and create those grids with ajax requests.
View 2 Replies