Asp.net mvc 3 简单的MVC web网格问题。我只想为表中的每一行添加一个唯一的id
有人提出了这样的答案:有没有优雅的方式 我有一张如下表: 我的问题 我只想给这个表中的每一行添加一个唯一的id 问题的详细解释Asp.net mvc 3 简单的MVC web网格问题。我只想为表中的每一行添加一个唯一的id,asp.net-mvc-3,viewmodel,webgrid,Asp.net Mvc 3,Viewmodel,Webgrid,有人提出了这样的答案:有没有优雅的方式 我有一张如下表: 我的问题 我只想给这个表中的每一行添加一个唯一的id 问题的详细解释 我实际上想要@item.mvrmedsddetailsid.ToString()这是一个要在行id中设置的动态值。如下所示: <tr class="webgrid-row-style" id=@item.MvrMedsDetailsId.ToString()> should yield for each row in the table <tr cl
我实际上想要@item.mvrmedsddetailsid.ToString()
这是一个要在行id中设置的动态值。如下所示:
<tr class="webgrid-row-style" id=@item.MvrMedsDetailsId.ToString()>
should yield for each row in the table
<tr class="webgrid-row-style" id=1>
<tr class="webgrid-row-style" id=4>
<tr class="webgrid-row-style" id=17>
应为表中的每一行让步
全部代码
@model MedicalVariance.Models.ViewModels.AddMedicineModel
@使用MedicalVariance.CustomHtmlHelpers
@{//razor启动
var grid=new-WebGrid(来源:Model.MedicineListGrid,canPage:true,rowsPerPage:100,fieldNamePrefix:“details”);
Pager(WebGridPagerModes.NextPrevious);
@grid.GetHtml(//开始@grid.GetHtml()
表样式:“webgrid”,
标题样式:“webgrid标题”,
页脚样式:“webgrid页脚”,
交替行样式:“webgrid交替行”,
selectedRowStyle:“webgrid选定行”,
行样式:“webgrid行样式”,
HtmlatAttributes:new{id=“start”},
列:grid.columns
(
网格.柱
(
columnName:“MvrMedsGenericName”,//这来自webgrid模型定义
标题:“药品名称”,
坎索特:错,
格式:
@
@ActionLink((字符串)(item.MvrMedsGenericName.ToString()),
“MedicineProfile”,//操作名称
“MedicineManagement”,//控制器名称
新的{PKMvrMedsId=item.PKMvrMedsId},null)
),
网格.柱
(
columnName:“mvrmedActualLorPotential”,
标题:“实际或潜在”,
坎索特:错,
格式:
@
),
网格.柱
(
columnName:“mvrmedsDoges”,
标题:“剂量管理”,
坎索特:错,
格式:
@
),
网格.柱
(
columnName:“MVRMedCriticalBreakdownPoint”,
标题:“关键分解点”,
canSort:错
),
网格.柱
(
columnName:“mvrmedsOutlets”,
标题:“类别结果”,
canSort:错
),
网格.柱
(
专栏名称:“MVRMEDSPriminaryananalysis”,
标题:“初步分析”,
canSort:错
),
网格.柱
(
专栏名称:“MVRMEDSPriminaryananalysis”,
标题:“初步分析”,
canSort:错
),
网格.柱
(
columnName:“PKMvrMedsId”,
标题:“删除”,
格式:
@
@ActionLink((字符串)(item.DeleteLabel.ToString()),
“DeleteMedicine”,//操作名称
“MedicineManagement”,//控制器名称
新的{MvrId=item.MvrId,PKMvrMedsId=item.PKMvrMedsId},null)
)/*请注意,DeleteAdministrationError已在global.asax中注册*/
)
);//结束@grid.GetHtml()
}
这将生成以下HTML
药名
实际的或潜在的
剂量
临界分解点
类别结果
初步分析
初步分析
管理
A.
ssss
ssss
管理
E
1212
1212
管理
E
1212
1212
很抱歉让您失望,但是您正在使用的WebGrid
帮助程序不允许您在
元素上设置类以外的任何其他属性
签出以下exc
@model MedicalVariance.Models.ViewModels.AddMedicineModel
@using MedicalVariance.CustomHtmlHelpers
<script src="@Url.Content("~/Scripts/ModalEditor.js")" type="text/javascript"></script>
<!--Learn more about webgrid: http://msdn.microsoft.com/en-us/magazine/hh288075.aspx -->
@{//razor starts
var grid = new WebGrid(source: Model.MedicineListGrid, canPage: true, rowsPerPage: 100, fieldNamePrefix: "details");
grid.Pager(WebGridPagerModes.NextPrevious);
@grid.GetHtml(//start of @grid.GetHtml()
tableStyle: "webgrid",
headerStyle: "webgrid-header",
footerStyle: "webgrid-footer",
alternatingRowStyle: "webgrid-alternating-row",
selectedRowStyle: "webgrid-selected-row",
rowStyle: "webgrid-row-style",
htmlAttributes: new { id = "start" },
columns: grid.Columns
(
grid.Column
(
columnName: "MvrMedsGenericName", //this comes from the webgrid model defintion
header: "Medicine Names",
canSort: false,
format:
@<text>
@Html.ActionLink((string)(item.MvrMedsGenericName.ToString()),
"MedicineProfile", //action name
"MedicineManagement", //controller name
new { PKMvrMedsId = item.PKMvrMedsId }, null)
</text>
),
grid.Column
(
columnName:"MvrMedsActualOrPotential",
header: "Actual Or Potential",
canSort:false,
format:
@<text>
<a href="#" class="ActualSelectedModal" id="@item.MvrMedsDetailsId.ToString()">@item.MvrMedsActualOrPotential.ToString()</a>
</text>
),
grid.Column
(
columnName: "MvrMedsDoses",
header: "Doses Administered",
canSort: false,
format:
@<text>
<a href="#" class="DoseSelectedModal" id="@item.MvrMedsDetailsId.ToString()">@item.MvrMedsActualOrPotential.ToString()</a>
</text>
),
grid.Column
(
columnName: "MvrMedsCriticalBreakDownPoint",
header: "Critical Break Down Point",
canSort: false
),
grid.Column
(
columnName: "MvrMedsOutcomes",
header: "Category Outcomes",
canSort: false
),
grid.Column
(
columnName: "MvrMedsPreliminaryAnalysis",
header: "Preliminary Analysis",
canSort: false
),
grid.Column
(
columnName: "MvrMedsPreliminaryAnalysis",
header: "Preliminary Analysis",
canSort: false
),
grid.Column
(
columnName: "PKMvrMedsId",
header: "Delete",
format:
@<text>
@Html.ActionLink((string)(item.DeleteLabel.ToString()),
"DeleteMedicine", //action name
"MedicineManagement", //controller name
new { MvrId = item.MvrId, PKMvrMedsId = item.PKMvrMedsId }, null)
</text>
)/*Please note that DeleteAdministrationError is registered in the global.asax*/
)
);//end of @grid.GetHtml()
}
<!--Learn more about webgrid: http://msdn.microsoft.com/en-us/magazine/hh288075.aspx -->
<table class="webgrid" id="start">
<thead>
<tr class="webgrid-header">
<th scope="col">Medicine Names</th>
<th scope="col">Actual Or Potential</th>
<th scope="col">Doses Administered</th>
<th scope="col">Critical Break Down Point</th>
<th scope="col">Category Outcomes</th>
<th scope="col">Preliminary Analysis</th>
<th scope="col">Preliminary Analysis</th>
<th scope="col">
<a href="/MedicineManagement/ReloadMedicineList/1?detailssort=PKMvrMedsId&detailssortdir=ASC">Delete</a>
</th>
</tr>
</thead>
<tbody>
<tr class="webgrid-row-style">
<td>
<a href="/MedicineManagement/MedicineProfile/1">ACETAMINOPHEN</a>
</td>
<td>
<a href="#" class="ActualSelectedModal" id="1">Actual</a>
</td>
<td>
<a href="#" class="DoseSelectedModal" id="1">Actual</a>
</td>
<td>Administration</td>
<td>A</td>
<td>ssss</td>
<td>ssss</td>
<td>
<a href="/MedicineManagement/DeleteMedicine/1/1">Delete</a>
</td>
</tr>
<tr class="webgrid-alternating-row">
<td>
<a href="/MedicineManagement/MedicineProfile/2">ABACAVIR SULFATE</a>
</td>
<td>
<a href="#" class="ActualSelectedModal" id="2">Actual</a>
</td>
<td>
<a href="#" class="DoseSelectedModal" id="2">Actual</a>
</td>
<td>Administration</td>
<td>E</td>
<td>1212</td>
<td>1212</td>
<td>
<a href="/MedicineManagement/DeleteMedicine/1/2">Delete</a>
</td>
</tr>
<tr class="webgrid-row-style">
<td>
<a href="/MedicineManagement/MedicineProfile/3">ALPRAZOLAM</a>
</td>
<td>
<a href="#" class="ActualSelectedModal" id="3">Actual</a>
</td>
<td>
<a href="#" class="DoseSelectedModal" id="3">Actual</a>
</td>
<td>Administration</td>
<td>E</td>
<td>1212</td>
<td>1212</td>
<td>
<a href="/MedicineManagement/DeleteMedicine/1/3">Delete</a>
</td>
</tr>
</tbody>
</table>
private string GetTableBodyHtml(IEnumerable<WebGridColumn> columns, string rowStyle, string alternatingRowStyle, string selectedRowStyle)
{
StringBuilder builder = new StringBuilder();
int rowIndex = 0;
foreach (WebGridRow row in this.Rows)
{
string str = this.GetRowStyle(rowIndex, rowStyle, alternatingRowStyle, selectedRowStyle);
TagBuilder builder2 = new TagBuilder("tr");
if (!string.IsNullOrEmpty(str))
{
builder2.MergeAttribute("class", str);
}
foreach (WebGridColumn column in columns)
{
string str2 = (column.Format == null) ? HttpUtility.HtmlEncode(row[column.ColumnName]) : Format(column.Format, row).ToString();
builder2.InnerHtml = builder2.InnerHtml + GetTableCellHtml(column, str2 ?? string.Empty);
}
builder.Append(builder2.ToString());
rowIndex++;
}
return builder.ToString();
}