我正在使用 jTable (www.jTable.org) 在 ASP.NET 中处理一个简单的网格。这是一个包含“居民”列表的页面,其中有一个名为“FacilityFrom”的字段是从数据库中的 FACILITY 表中填充的。在“居民”jTable 上,我有一个使用“选项”属性并从“设施”SQL 表中提取的字段。我只想要一个下拉列表,当您添加新记录时,第一个默认值为“(无)”。
我做了一些 MSSQL 魔术并创建了一个表示默认值的记录(它在数据库中的字段字面意思是“(无)”。然后在填充下拉列表时我做
select FacilityID,Name from FACILITY where Name = '(NONE)'
UNION
select FacilityID,Name from FACILITY where Name <> '(NONE)'
我意识到它很丑(我设置了必要的唯一约束以使其密封),但查询按预期工作并将“(NONE)”选项放在顶部;但无论出于何种原因,jTable 都在自己做一些排序魔术并将其放在底部!即使我颠倒了上面的选择语句,它仍然在底部吗?即使我在名为 GetFacilityOptions 的 WebMethod 中放置了一个断点 - 很明显,结果就是我想要的 - (NONE) 总是在列表中的索引 0 处。似乎 jquery 绑定中的某些东西正在改变?
无论如何,我在 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 };
}
}
有人有任何想法/建议吗?非常感谢!