Asp.net mvc DevExpress MVC GridView:使用DetailRowGetButtonVisibility
是否可以在ASP.NET MVC中使用事件RowGetButtonVisibility? 在“普通”ASP.NET中,DevXPress使用如下所述: 我希望能够在GridView中显示/隐藏细节按钮 有什么办法吗 像这样的事情是行不通的:Asp.net mvc DevExpress MVC GridView:使用DetailRowGetButtonVisibility,asp.net-mvc,gridview,devexpress,show-hide,master-detail,Asp.net Mvc,Gridview,Devexpress,Show Hide,Master Detail,是否可以在ASP.NET MVC中使用事件RowGetButtonVisibility? 在“普通”ASP.NET中,DevXPress使用如下所述: 我希望能够在GridView中显示/隐藏细节按钮 有什么办法吗 像这样的事情是行不通的: <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<FOO>" %> <% Html.DevExpress().GridView(setting
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<FOO>" %>
<%
Html.DevExpress().GridView(settings =>
{
settings.Name = "resultsTable";
settings.KeyFieldName = "ResultId";
settings.CallbackRouteValues = new { Controller = "Results", Action = "ResultsPartial" };
settings.Width = Unit.Percentage(100);
settings.Height = Unit.Percentage(100);
//...
settings.PreRender = (sender, e) =>
{
MVCxGridView grid = (MVCxGridView)sender;
grid.DetailRowGetButtonVisibility += (s_, e_) =>
{
if (some_condition == true)
e_.ButtonState = GridViewDetailRowButtonState.Hidden;
};
};
})
.Bind(Model.Results)
.Render();
{
settings.Name=“resultsTable”;
settings.KeyFieldName=“ResultId”;
settings.CallbackRouteValues=new{Controller=“Results”,Action=“resultsportial”};
设置宽度=单位百分比(100);
设置高度=单位百分比(100);
//...
settings.PreRender=(发送方,e)=>
{
MVCxGridView网格=(MVCxGridView)发送方;
grid.DetailRowGetButtonVisibility+=(s,e)=>
{
if(某些条件==true)
e_u.ButtonState=GridViewDetailRowButtonState.Hidden;
};
};
})
.Bind(Model.Results)
.Render();
我想我会选择SetDataItemTemplateContent
中的纯html按钮
我这样做是为了使用一个简单的if
来处理链接的输出,您可以扩展它。我想这对你也应该有用
var linkWeb = settings.Columns.Add("", "Web");
linkWeb.SetDataItemTemplateContent(c =>
{
DevExpressHelper.WriteLineToResponse((DataBinder.Eval(c.DataItem, "UrlWeb") != null && DataBinder.Eval(c.DataItem, "UrlWeb") != "") ? "<a href=\"" + DataBinder.Eval(c.DataItem, "UrlWeb") + "\" target=\"_blank\" title=\"Url\"><img src=\"" + Url.Content("~/content/img/url.png") + "\" alt=\"Url\" /></a>" : "");
});
希望能有所帮助。我解决了DevExpress论坛中描述的问题: 我第一次尝试附加到事件是正确的,但不是在PreRender。DataBound是要使用的正确事件
mygrid.UpdateEdit();