我有一个项目,我在克里特岛 jquery 选项卡并使用 Ajax 加载它们的部分视图(全部动态完成),有一些共享的部分视图,如“selectUser”,问题是一些选项卡将同时使用这个部分视图,所以我会重复 ids,然后我说“没有概率”使用类和更具体的选择器,但我不能让 jqgrid 使用类选择器工作。
所以我正在寻找一种很好的方法来: - 创建动态 ID 或 - 使用类使 jqgrid 工作
我有一个项目,我在克里特岛 jquery 选项卡并使用 Ajax 加载它们的部分视图(全部动态完成),有一些共享的部分视图,如“selectUser”,问题是一些选项卡将同时使用这个部分视图,所以我会重复 ids,然后我说“没有概率”使用类和更具体的选择器,但我不能让 jqgrid 使用类选择器工作。
所以我正在寻找一种很好的方法来: - 创建动态 ID 或 - 使用类使 jqgrid 工作
我不确定我是否理解正确。如果您使用 jqGrid,您需要<table>
在网格上有一些具有唯一 id 属性的元素。如果您<table>
动态生成元素,您可以先生成唯一 id,然后<table>
使用 id 属性创建元素。该方法$.jgrid.randId()
可以帮助您。使用非常简单。您可以在答案中找到代码示例。
存在另一个问题,因为必须为id
网格的每一行分配唯一属性。如果您在没有为输入数据中的行指定任何id
行的情况下填充网格,或者如果网格的本机 id 可能具有共同值(不同网格中的相同 rowid),则您可以在数据中有 id 重复。idPrefix
您可以通过使用选项来解决问题。如果您在页面上的所有网格中指定不同的选项值idPrefix
(例如idPrefix: "g1_"
,对于第一个网格,idPrefix: "g2_"
对于第二个等),则 rowid 将从id
和idPrefix
. 所以你会有独特的rowids。
public static void RenderPartialWithPrefix(this HtmlHelper helper, string partialViewName, object model, string prefix)
{
helper.RenderPartial(partialViewName,
model,
new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = prefix } });
}
@Html.Partial("_Address",
new ViewDataDictionary()
{
TemplateInfo = new TemplateInfo() { HtmlFieldPrefix = "ShippingAddress" }
})
上面使用的 Partial() 助手的变体使用 ViewDataDictionary 参数来指定 TemplateInfo。TemplateInfo 的 HtmlFieldPrefix 属性必须设置为您选择的名称。
结果:
<input id="ShippingAddress_Street" name="ShippingAddress.Street" type="text" value="" />