Javascript 剑道UI网格传递id从文本输入到读取命令
使用剑道UI网格的Javascript 剑道UI网格传递id从文本输入到读取命令,javascript,c#,jquery,kendo-ui,asp.net-mvc-5,Javascript,C#,Jquery,Kendo Ui,Asp.net Mvc 5,使用剑道UI网格的Read命令将id传递给控制器的最佳方式是什么?id必须从文本框中获取,在网格中加载数据的触发器必须通过单击按钮获得。我更喜欢使用javascript和jQuery来实现这一点。这是我目前掌握的代码: 控制器: public ActionResult StrategyParameter_Read([DataSourceRequest]DataSourceRequest request, int? id) { IQueryable<Strat
Read
命令将id传递给控制器的最佳方式是什么?id必须从文本框中获取,在网格中加载数据的触发器必须通过单击按钮获得。我更喜欢使用javascript和jQuery来实现这一点。这是我目前掌握的代码:
控制器:
public ActionResult StrategyParameter_Read([DataSourceRequest]DataSourceRequest request, int? id)
{
IQueryable<StrategyParameter> strategyParam =
_db.StrategyParameter.Where(p => p.StrategySetId == id);
DataSourceResult result = strategyParam.ToDataSourceResult(request, sp => new {
Id = sp.Id,
StrategySetId = sp.StrategySetId,
ParamType = sp.ParamType,
Key = sp.Key,
Value = sp.Value,
MinimumValue = 0,
MaximumValue = 0,
IncrementalValue = 0
});
return Json(result);
}
<div class="form-group strategy-set-id">
<label class="col-sm-2 control-label" for="strategySetId">Strategy Set ID</label>
<div class="col-sm-4">
<input type="number" min="0" step="1" id="strategySetId" class="form-control" placeholder="Enter a Strategy Set ID">
<span class="help-block"></span>
</div>
<div class="col-sm-offset-2 col-sm-1">
<button type="submit" class="btn btn-primary" id="get-params">Get Parameters</button>
</div>
</div>
@(Html.Kendo().Grid<StrategyParameterViewModel>()
.Name("strategyParameters")
.Columns(columns =>
{
columns.Bound(c => c.Id).Width(170);
columns.ForeignKey(p => p.ParamType, (System.Collections.IEnumerable)ViewData["paramTypes"], "Key", "Value").Title("Param Type").Width(200);
columns.Bound(c => c.Key);
columns.Bound(c => c.Value);
columns.Bound(c => c.MinimumValue);
columns.Bound(c => c.MaximumValue);
columns.Bound(c => c.IncrementalValue);
})
//.ColumnMenu()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable(pager =>
pager.Refresh(true)
)
.Navigatable()
.Resizable(resize => resize.Columns(true))
.Sortable(sortable =>
{
sortable.SortMode(GridSortMode.SingleColumn);
sortable.AllowUnsort(false);
})
.Filterable(filterable => filterable.Mode(GridFilterMode.Menu))
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Id).Editable(false);
})
.Read(read => read.Action("StrategyParameter_Read", "StrategySets"))
.Sort(sort => sort.Add("Id").Descending())
)
.Deferred()
)
public ActionResult策略参数_Read([DataSourceRequest]DataSourceRequest请求,int?id)
{
IQueryable strategyParam=
_其中(p=>p.StrategySetId==id);
DataSourceResult result=strategyParam.ToDataSourceResult(请求,sp=>new{
Id=sp.Id,
StrategySetId=sp.StrategySetId,
ParamType=sp.ParamType,
键=sp.键,
值=sp.值,
最小值=0,
最大值=0,
增量值=0
});
返回Json(结果);
}
查看:
public ActionResult StrategyParameter_Read([DataSourceRequest]DataSourceRequest request, int? id)
{
IQueryable<StrategyParameter> strategyParam =
_db.StrategyParameter.Where(p => p.StrategySetId == id);
DataSourceResult result = strategyParam.ToDataSourceResult(request, sp => new {
Id = sp.Id,
StrategySetId = sp.StrategySetId,
ParamType = sp.ParamType,
Key = sp.Key,
Value = sp.Value,
MinimumValue = 0,
MaximumValue = 0,
IncrementalValue = 0
});
return Json(result);
}
<div class="form-group strategy-set-id">
<label class="col-sm-2 control-label" for="strategySetId">Strategy Set ID</label>
<div class="col-sm-4">
<input type="number" min="0" step="1" id="strategySetId" class="form-control" placeholder="Enter a Strategy Set ID">
<span class="help-block"></span>
</div>
<div class="col-sm-offset-2 col-sm-1">
<button type="submit" class="btn btn-primary" id="get-params">Get Parameters</button>
</div>
</div>
@(Html.Kendo().Grid<StrategyParameterViewModel>()
.Name("strategyParameters")
.Columns(columns =>
{
columns.Bound(c => c.Id).Width(170);
columns.ForeignKey(p => p.ParamType, (System.Collections.IEnumerable)ViewData["paramTypes"], "Key", "Value").Title("Param Type").Width(200);
columns.Bound(c => c.Key);
columns.Bound(c => c.Value);
columns.Bound(c => c.MinimumValue);
columns.Bound(c => c.MaximumValue);
columns.Bound(c => c.IncrementalValue);
})
//.ColumnMenu()
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Pageable(pager =>
pager.Refresh(true)
)
.Navigatable()
.Resizable(resize => resize.Columns(true))
.Sortable(sortable =>
{
sortable.SortMode(GridSortMode.SingleColumn);
sortable.AllowUnsort(false);
})
.Filterable(filterable => filterable.Mode(GridFilterMode.Menu))
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.Id).Editable(false);
})
.Read(read => read.Action("StrategyParameter_Read", "StrategySets"))
.Sort(sort => sort.Add("Id").Descending())
)
.Deferred()
)
策略集ID
获取参数
@(Html.Kendo().Grid())
.名称(“战略参数”)
.列(列=>
{
columns.Bound(c=>c.Id).Width(170);
columns.ForeignKey(p=>p.ParamType,(System.Collections.IEnumerable)ViewData[“paramTypes”],“Key”,“Value”).Title(“ParamType”).Width(200);
columns.Bound(c=>c.Key);
columns.Bound(c=>c.Value);
columns.Bound(c=>c.MinimumValue);
columns.Bound(c=>c.MaximumValue);
columns.Bound(c=>c.IncrementalValue);
})
//.column菜单()
.Editable(可编辑=>Editable.Mode(GridEditMode.InLine))
.Pageable(寻呼机=>
寻呼机刷新(真)
)
.Navigatable()
.resize可调整大小(resize=>resize.Columns(true))
.Sortable(可排序=>
{
sortable.SortMode(GridSortMode.SingleColumn);
sortable.AllowUnsort(false);
})
.Filterable(Filterable=>Filterable.Mode(GridFilterMode.Menu))
.Scrollable()
.DataSource(DataSource=>DataSource
.Ajax()
.页面大小(100)
.Model(Model=>
{
model.Id(p=>p.Id);
model.Field(p=>p.Id).可编辑(false);
})
.Read(Read=>Read.Action(“策略参数_Read”,“策略集”))
.Sort(Sort=>Sort.Add(“Id”).Descending())
)
.递延
)
如果该值在配置期间可用,则只需提供函数调用即可返回数据属性中的数据
.DataSource(dataSource => dataSource
.Ajax()
...
.Read(read => read.Action("StrategyParameter_Read", "StrategySets").Data("getMyID"))
...
)
JS函数
function getMyID()
return {
MyID:$("#tbID").val();
}
}
如果该值仅在初始网格配置后可用,则可以使用以下命令刷新网格:
grid.dataSource.read({ MyID:$("#tbID").val()});
如果该值在配置期间可用,则只需提供函数调用即可返回数据属性中的数据
.DataSource(dataSource => dataSource
.Ajax()
...
.Read(read => read.Action("StrategyParameter_Read", "StrategySets").Data("getMyID"))
...
)
JS函数
function getMyID()
return {
MyID:$("#tbID").val();
}
}
如果该值仅在初始网格配置后可用,则可以使用以下命令刷新网格:
grid.dataSource.read({ MyID:$("#tbID").val()});