小编Eag*_*Fox的帖子

如何在处理Json时修复循环引用错误

这个问题是我在这里的原始帖子的一部分获取数据到Extjs GridPanel

下面是我的控制器从sql db读取数据然后我试图将结果编码为JSON并将数据发送回我的gridview.js

public JsonResult writeRecord()
//public string writeRecord()
    {

        Response.Write("Survey Completed!");
        SqlConnection conn = DBTools.GetDBConnection("ApplicationServices2");


        string sqlquery = "SELECT Q1, Q2, Q3, Q4, Improvements, Comments FROM myTable";
        SqlDataAdapter cmd = new SqlDataAdapter(sqlquery, conn);


        DataSet myData = new DataSet();
        cmd.Fill(myData, "myTable");

        conn.Open();
        conn.Close();

        return Json(myData, JsonRequestBehavior.AllowGet);
        //return myData.GetXml();

    } 
Run Code Online (Sandbox Code Playgroud)

这就是问题所在,通过上面的代码,我在执行gridview.js时得到的gridview表没有数据,但如果我直接访问我的控制器的方法就像这样

http://localhost:55099/GridView/writeRecord
Run Code Online (Sandbox Code Playgroud)

我收到这个错误,

序列化"System.Globalization.CultureInfo"类型的对象时检测到循环引用. 描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息. 异常详细信息: System.InvalidOperationException:序列化"System.Globalization.CultureInfo"类型的对象时检测到循环引用.

有人可以请帮忙..

c# json extjs circular-reference asp.net-mvc-3

20
推荐指数
2
解决办法
3万
查看次数

如何在文本字段中放置X以清除extjs中的文本

我想在文本字段(文本字段右侧的x)中实现X按钮以清除输入的文本.我见过很多具有此功能的extjs应用程序.我该怎么做呢?任何建议或评论都会非常感激......谢谢

它看起来像这样......

在此输入图像描述

extjs button clear textfield extjs4.1

8
推荐指数
1
解决办法
2万
查看次数

如何从C#上的json读取数据

我有以下json对象,我传递给我的c#服务器

[
    {
        "ID": 1,
        "FirstName": "Jay",
        "LastName": "Smith"
    },
    {
        "ID": 2,
        "FirstName": "Rich",
        "LastName": "Son"
    },
    {
        "ID": 3,
        "FirstName": "Emmy",
        "LastName": "Wat"
    }
]
Run Code Online (Sandbox Code Playgroud)

我像这样创建一个类

public class Person
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

当我这样做

public static string addRecord(string details)
{
    Person tempRecord = JsonConvert.DeserializeObject<Person>(details);
    string tempFN = tempRecord.FirstName;
    return tempFN;
}
Run Code Online (Sandbox Code Playgroud)

我无法得到实际结果.

我究竟做错了什么?我是否必须在Person类中创建另一个List?有帮助吗?

更新 - 我的记录来自Grid,这是我将它发送到我的服务器的方式

    var jsonD = …
Run Code Online (Sandbox Code Playgroud)

c# json list object

8
推荐指数
1
解决办法
2万
查看次数

为Treenode创建列表

我知道这一定非常简单,但我无法让它工作......我试图通过比较不同行中的两列并相应地将它们作为节点或叶子来为extjs树创建一个List.这是我的样本数据

ListA  ListB  labelName
 NY           Parent1
        NY    Leaf1
 HI           Parent2
 AK           Parent3
Run Code Online (Sandbox Code Playgroud)

这是我的c#end ...所以当我匹配NY时,我应该将Parent1作为节点而Leaf1作为它的叶子而不是HI或AK ......但是这样做会把所有数据作为Parent ...即使是叶.

            SqlCommand cmd = con.CreateCommand();

            comd.CommandText = "SELECT * FROM myTable";
            con.Open();
            SqlDataReader reader = comd.ExecuteReader();
            while (reader.Read())
            {
                City MyData = new City();

                MyData.ListA = reader["ListA"].ToString().Trim();
                MyData.ListB = reader["ListB"].ToString().Trim();
                MyData.labelName = reader["labelName"].ToString().Trim();
                giveData.Add(MyData);
            }

            int count = 1;

            List<TreeNode> myNode = new List<TreeNode>();
            foreach (City MyData in giveData)
            {
                // 1st foreach
                    if (MyData.ListA != "")
                    {

                        TreeNode treeNode = new TreeNode();
                        treeNode.id = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc treenode list extjs4

7
推荐指数
1
解决办法
3306
查看次数

如何重新加载树的选定节点

我需要在删除节点的一​​个叶子后重新加载树.重新加载整个商店的问题是,它太慢了.这就是为什么我只想重新加载其叶子被删除的节点.

我试过这个..但它说空了......

Ext.getCmp('myTree').root.reload();
Run Code Online (Sandbox Code Playgroud)

我也试过了

var tempParent = Ext.getCmp('myTree').getSelectionModel().getSelection()[0].parentNode;
Ext.StoreMgr.lookup('myStore').load( {node: tempParent});
Run Code Online (Sandbox Code Playgroud)

这也没有帮助......有没有人有类似的问题已经解决了?

更新

var node = Ext.getCmp('myTree').getSelectionModel().getSelection()[0].parentNode.get('id');
Run Code Online (Sandbox Code Playgroud)

这确实给了我父节点......但是当我加载它时

Ext.getCmp('myTree').store.load({ node: node });
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

TypeError:b.getId不是函数

第二次更新 -

这就是我树的样子

  • 第一节点

    • 第一叶
  • 第二节点

    • 第一叶

现在,当我删除第二个节点的第一个叶子时......第一个节点出现在第二个节点下

  • 第一节点

    • 第一叶
  • 第二节点

    • 第一节点

tree treenode reload extjs4

7
推荐指数
1
解决办法
7260
查看次数

插入存储过程传递参数

我有这个SQL语句

INSERT housingSurvey ([nameID], [houseID], [jobID], [Active], [comment], [needsMaintenance], [lastUpdateDate) 
VALUES (@NAMEID, @HOUSEID, @JOBID, 1, @DUEDATE, @COMMENT, NULL, @LASTUPDATEDATE)
Run Code Online (Sandbox Code Playgroud)

我尝试了这个存储过程,但我没有得到当前日期.

CREATE PROCEDURE housingSurveyS(
                    @NAMEID INT,
                    @HOUSEID INT,
                    @JOBID INT, 
                    @COMMENT BIT,
                    @DUEDATE NVARCHAR,
                    CURRENTTIME)
AS
BEGIN
INSERT INTO housingSurvey(
    [nameID],
    [houseID],
    [jobID],
    [Active],
    [comment],
    [dueDate],
    [needsMaintenance],
    [lastupdatedate])
VALUES (
    @NAMEID,
    @HOUSEID,
    @JOBID,
    1,
    @COMMENT,
    @DUEDATE,
    NULL,
    @LASTUPDATEDATE)
END
Run Code Online (Sandbox Code Playgroud)

你能不能看看我做错了什么.谢谢

更新 我将CURRENTTIME更改为DATETIME作为参数将当前日期插入[lastupdatedate] ...它仍然不起作用...

sql database stored-procedures

3
推荐指数
1
解决办法
3万
查看次数

在应用程序设置中将斜杠作为参数传递给url

我有一个extjs应用程序,它将参数发送到带有斜杠的应用程序设置...例如"Tiger/Cheetah",打印报告...我的ssrs报告也将该参数设置得很好...但是当经历一个网页浏览器传递的参数不带斜线的"Tiger/Cheetah"......它需要"Tiger"但报告中没有记录...

我试着像这样替换/和%2f

Tiger%2fCheetah
Run Code Online (Sandbox Code Playgroud)

它不起作用......

还有其他方法吗?

extjs reporting-services ssrs-2008 ssrs-2012

2
推荐指数
1
解决办法
1万
查看次数

参数化查询与%

我有一个选择声明

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" +
                      " WHERE STATE LIKE @STATE + '%';";
Run Code Online (Sandbox Code Playgroud)

这给了我一个"'"错误

我试过这个

command.commandText = "SELECT FIRSTNAME, LASTNAME FROM MYTABLE" +
                      " WHERE STATE LIKE @STATE" + "'%';";
Run Code Online (Sandbox Code Playgroud)

这给了'%'错误......正确的方法是什么

c# select parameterized sql-server-2008

2
推荐指数
1
解决办法
113
查看次数

在c#中添加两个方法的列表

我正在尝试使用getRecords列表添加getRecords2列表.出于某些原因,在getRecords上,当我调用它时需要很长时间来处理和超时.

public static List<ListA> getRecords2(string id)
{
   List<ListA> listOfRecords = new List<ListA>();
   using (SqlConnection con = SqlConnect.GetDBConnection())
   {
      con.Open();
      SqlCommand cmd = con.CreateCommand();
      cmd.CommandText = "sp2";
      cmd.CommandType = CommandType.StoredProcedure;
      cmd.Parameters.Add(new SqlParameter("@id", id));

      SqlDataReader reader = cmd.ExecuteReader();

      while (reader.Read())
      {
         ListA listMember = new ListA();
         listMember.ID = (int)reader["ID"];
     listMember.Name = reader["FullName"].ToString().Trim();
      }
      con.Close();
    }
       return listOfRecords;
  }

  public static List<ListA> getRecords(string id)
  {
     List<ListA> listOfRecords = new List<ListA>();
     using (SqlConnection con = SqlConnect.GetDBConnection())
     {
        con.Open();
        SqlCommand cmd = con.CreateCommand();
        cmd.CommandText = …
Run Code Online (Sandbox Code Playgroud)

c# list add

2
推荐指数
1
解决办法
287
查看次数

如何处理检查和取消选中extjs中存储的复选框字段

我有一个商店,加载一个显示州名,资本和寒冷天气的网格.

我还有一个复选框,根据"寒冷天气"列的"是"值过滤商店.

当我单击复选框时,网格会过滤并显示"是"的状态,但是当我取消选中该复选框时,它什么都不做.

如何恢复商店以显示以前的商店?下面是我的复选框.请帮忙.

items: [
    {
        xtype: 'checkboxfield',
        boxLabel: 'Show only Cold State',
        scope: this,
        handler: function (field, value) {
            scope: this,
            this.checkValue = field.getValue();
            console.log(this.checkValue);
            if (this.checkValue == true) {
                this.store.filter('Cold', 'Yes');
            }
            else if (this.checkValue == false) {
            }
        },
Run Code Online (Sandbox Code Playgroud)

更新的代码 - 当我这样做时,我收到此错误

TypeError:tempstore1未定义

items: [
    {
        xtype: 'checkboxfield',
        boxLabel: 'Show only Cold State',
        scope: this,
        handler: function (field, value) {
            scope: this,
            this.checkValue = field.getValue();
            console.log(this.checkValue);
            if (this.checkValue == true) {
                var tempstore1 = Ext.StoreMgr.lookup('store');
                tempstore1.filters.add('CheckBoxFilter', …
Run Code Online (Sandbox Code Playgroud)

checkbox extjs store filter extjs4.1

1
推荐指数
1
解决办法
1万
查看次数