gpt4 book ai didi

c# - 有条件地将 CSS 类添加到 Web 网格列项目

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:35 25 4
gpt4 key购买 nike

是否可以为某个网络网格列有条件地设置 CSS 类或将字符串编码为 html?我能够使用 format: 在列中将 span 标签附加到项目,但现在我需要根据 razor View 中的辅助函数或来自 Controller /模型的 bool 表达式向 span 标签添加一个类。 我不想用 JS 做这个,C# 应该足够了

这是我在 View 模型中尝试的:

 @grid.GetHtml(
headerStyle:"reviewGridHeader",
columns: grid.Columns(
...[other columns]...
grid.Column(columnName: "FeedBack", format: @<span>@CheckFeedBack(item.FeedBack)</span>)
))

View 模型中的辅助函数(拆分和比较字符串):

    static string CheckFeedBack(string item) {
String[] feedbacks = System.Text.RegularExpressions.Regex.Split(item, "of");

//if feedback complete
if((Convert.ToInt32(feedbacks[0]) == (Convert.ToInt32(feedbacks[1]))))
{
string newFeedback = @"<span class=""feedBackComplete"">"+ item +"</span>";
string encodedFeedback = System.Web.HttpUtility.HtmlEncode(newFeedback);

return encodedFeedback;
}
return item;
}

这里是演示文稿,它在反馈完成时有条件地工作:

feedback column

更新:在 Zach 的指导下返回 MvcHtmlString 后,我在 WebGrid 列中使用上述辅助方法时遇到了一些问题。下面显示了正确的语法:

grid.Column(columnName: "FeedBack", format: (item) => CheckFeedBack(item.FeedBack), style: "webGridAlignment")

最佳答案

您必须返回 html 而不是字符串...对于这种情况,您可以使用 MvcHtmlString 并在 View 中直接使用 raw

static System.Web.Mvc.MvcHtmlString CheckFeedBack(string item) {
String[] feedbacks = System.Text.RegularExpressions.Regex.Split(item, "of");

//if feedback complete
if((Convert.ToInt32(feedbacks[0]) == (Convert.ToInt32(feedbacks[1]))))
{
string newFeedback = @"<span class=""feedBackComplete"">"+ item +"</span>";

return MvcHtmlString.Create(newFeedback);
}
return MvcHtmlString.Create(item);
}

关于c# - 有条件地将 CSS 类添加到 Web 网格列项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13050430/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com