0

我正在尝试从我的 c# 控制器中的网格中获取值。这是我的商店和网格

Ext.create('Ext.data.Store', {
    storeId:'store',
    fields:['name', 'email', 'phone'],
    proxy: {
        type: 'memory',
        reader: {
            type: 'json',
            root: 'items'
        }
     }
});

Ext.create('Ext.grid.Panel', {
    store: Ext.data.StoreManager.lookup('store'),
    columns: [
        { text: 'Name',  dataIndex: 'name' },
        { text: 'Email', dataIndex: 'email', flex: 1 },
        { text: 'Phone', dataIndex: 'phone' }
    ],
    height: 200,
    width: 400,
    renderTo: Ext.getBody()
});

这就是我试图将我的网格值传递给控制器​​的方式

var records = [];
this.store.data.each(function(rec) {
     records.push(rec.data);
});
Ext.Ajax.request({
     url: 'mycontroller/read_grid',
     params: {
          par1: Ext.encode(records)
     }
})

我的问题是如何从列电话中获取所有值来更新我的 sql 数据库。我是使用某种数组还是有一种方法可以将“phone”列的所有值存储在数据库中

4

2 回答 2

2

你做错了。首先,您应该始终[idProperty][1]为模型拥有一个属性,并且您应该始终使用模型!现在,如果您没有定义模型,商店将使用隐式模型,如果您没有定义 a idProperty,它将默认为“id”。

现在假设您拥有所有这些: 如果您随后添加或编辑绑定到商店(添加或加载到其中)的该类型的模型实例(记录),您可以提交所有已更改的模型实例(有脏字段)或通过访问sync()商店是新的(幻影) 。代理将需要一个合适的作家。在您的情况下,您可以将写入配置[allowSingle][2]为 false 以强制写入器始终将记录数组(列表)发送回服务器,否则您可能会遇到控制器上的反序列化错误。

你的情况听起来有点不寻常,因为如果你只是发送电话号码,你怎么知道哪个电话号码属于谁?无论如何,如果您按照上述方式进行操作,那么您的方法就正确,您仍然可以决定在服务器上采用哪些字段。

注意:如果您在模型上定义代理,则无需在商店中再次定义相同的代理。

更新

要仅获取一种字段类型并将其发送,您可以执行(未经测试)

var emails = store.collect('email');
Ext.Ajax.request({
    url: 'page.php',
    jsonData: emails,
    success: function(response){
        var text = response.responseText;
        // process server response here
    }
});

请参阅收集索取更多信息

于 2013-02-01T07:08:55.380 回答
0
public class UserController : ControllerBase
{
    private DemoDbContext _dbContext;

    public UserController(DemoDbContext dbContext)
    {
        _dbContext = dbContext;
    }

    [HttpGet("GetUsers")]
    public IActionResult Get()
    {
        var users = _dbContext.demodb.ToList();
        return Ok(users);
    }

    [HttpPost("CreateUser")]
    public IActionResult Create([FromBody] UserRequest request)
    {
        tblDemodb user = new tblDemodb();
        user.UserName = request.UserName;
        user.FirstName = request.FirstName;
        user.LastName = request.LastName;
        user.City = request.City;
        user.State = request.Country;
        user.Country = request.State;
        _dbContext.demodb.Add(user);
        _dbContext.SaveChanges();
        return Ok();
    }

    [HttpPut("UpdateUser")]
    public IActionResult Update([FromBody] UserRequest request)
    {
        var user = _dbContext.demodb.FirstOrDefault(x => x.Id == request.Id);
        user.UserName = request.UserName;
        user.FirstName = request.FirstName;
        user.LastName = request.LastName;
        user.City = request.City;
        user.State = request.Country;
        user.Country = request.State;
        _dbContext.Entry(user).State = EntityState.Modified;
        _dbContext.SaveChanges();
        return Ok(_dbContext.demodb.ToList());
    }
于 2022-01-20T20:43:03.700 回答