我有一个项目,其中我克里特jquery选项卡并使用Ajax加载它们的部分视图(所有动态完成),有一些共享的部分视图,如“selectUser”,问题是一些选项卡将使用此部分视图在同时,所以我将重复ids,然后我说“没有概率”使用类和更具体的选择器,但我不能让jqgrid使用类选择器工作。
所以我正在寻找一个很好的方法: - 创建动态ID 要么 -make jqgrid使用类
工作答案 0 :(得分:0)
Add a prefix to each different item
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 } });
}
答案 1 :(得分:0)
我不确定我是否理解正确。如果您使用jqGrid,则需要在网格上添加<table>
元素,并使用一些唯一ID属性。如果您动态生成<table>
元素,则可以先生成唯一ID,然后使用id属性创建<table>
元素。方法$.jgrid.randId()
可以帮助您。用法非常简单。您可以在the answer中找到代码示例。
存在另一个问题,因为一个必须为网格的每一行分配唯一的id
属性。如果填充网格时没有为输入数据中的行指定任何id
,或者网格的原生ID可能具有公共值(不同网格中的相同rowid),则可以id在数据中重复。您可以使用idPrefix
选项解决问题。如果您在页面上的所有网格中指定{em>不同的值idPrefix
选项(例如,idPrefix: "g1_"
用于第一个网格,idPrefix: "g2_"
用于第二个网格,依此类推)rowid将由id
和idPrefix
构成。因此,你将拥有独特的rowid。
答案 2 :(得分:0)
@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="" />