Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc DevExpress MVC GridView:使用DetailRowGetButtonVisibility_Asp.net Mvc_Gridview_Devexpress_Show Hide_Master Detail - Fatal编程技术网

Asp.net mvc DevExpress MVC GridView:使用DetailRowGetButtonVisibility

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

是否可以在ASP.NET MVC中使用事件RowGetButtonVisibility? 在“普通”ASP.NET中,DevXPress使用如下所述:

我希望能够在GridView中显示/隐藏细节按钮

有什么办法吗

像这样的事情是行不通的:

<%@ 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();