我正在使用jTable(www.jTable.org)在ASP.NET中创建一个简单的网格。这是一个包含“居民”列表的页面,其中有一个名为“FacilityFrom”的字段,该字段填充在数据库中的FACILITY表中。在'Residents'jTable上我有一个字段,它使用'options'属性并从'Facility'SQL表中提取。我只想要一个下拉列表,其中第一个&当您添加新记录时,默认值为'(NONE)'。
我做了一些MSSQL魔术并创建了一个代表默认值的记录(它在数据库中的字段实际上是'(NONE)'。然后在填充下拉列表时我做了
select FacilityID,Name from FACILITY where Name = '(NONE)'
UNION
select FacilityID,Name from FACILITY where Name <> '(NONE)'
我意识到它很难看(我将必要的唯一约束条件设置为气密),但查询按预期工作并将'(NONE)'选项置于顶部;但无论出于何种原因,jTable都在自己做一些排序魔法并把它放在底部!即使我颠倒了上面的选择陈述,它仍然在底部?即使我在WebMethod中设置一个名为GetFacilityOptions的断点 - 很明显结果是我想要的 - (NONE)总是在列表中的索引0处。看来jquery绑定中的某些内容正在进行更改? / p>
无论如何,我在jTable文档中找到了defaultValue属性并认为它可以解决我的问题,但它仍然没有影响? HTML如下:
FacilityFromID: {
title: 'Facility',
options: '/Residents.aspx/GetFacilityOptions',
defaultValue: '(NONE)'
},
代码隐藏是:
[WebMethod(EnableSession = true)]
public static object GetFacilityOptions()
{
try
{
var facilities = BusinessObjects.DataAcesss.GetAllFacilities().Select(c => new { DisplayText = c.Name, Value = c.FacilityID });
//BREAKPOINT SAYS '(NONE)' IS AT INDEX 0 HERE!!
return new { Result = "OK", Options = facilities };
}
catch (Exception ex)
{
return new { Result = "ERROR", Message = ex.Message };
}
}
任何人都有任何想法/建议?非常感谢!
答案 0 :(得分:1)
, min_id: {
title: field name,
options: the options function,
defaultValue: $('#<% = ddlMin.ClientID %>').val() // where ddlMin.ClientID the value required
}